1
私はlithoxylの外観が好きで、徐々に私の現在の使用法をflask.loggerと交換したいと思います。フリル・ロガーにリチオキシルを組み込むうまい方法はありますか?
2つのロギングフレームワークを共存させる良い方法はありますか?
は、これまでのところ私は、次があります。
from flask import current_app
from werkzeug.local import LocalProxy
logger = LocalProxy(lambda: current_app.logger)
class LogAdaptor(object):
"""file-like object that will write messages to the logger"""
def write(self, msg):
if msg.strip():
logger.info(msg)
from lithoxyl import StreamEmitter, SensibleFormatter
emtr = StreamEmitter(LogAdaptor())
fmtr = SensibleFormatter('{level_name_upper} {module_name} {end_message}')
# ... the rest is basically the same as http://lithoxyl.readthedocs.io/en/latest/overview.html#logging-sensibly
この多かれ少なかれ作品が、ログレベルは、例えば、出力では失われている:私は必要なものを推測している
DEBUG backend: log message from app.logger.debug
INFO logger: CRITICAL "backend" "critical action failed"
INFO logger: DEBUG "backend" "action succeeded"
DEBUG backend: log message from app.logger.debug
がありますより複雑なエミッタ、またはFlask.loggerハンドラの基になるストリームの.writeにアクセスする方法(書式設定を迂回するなど)
またはこれはすべて間違ったツリーを吠えています。すべてがリファクタリングされるまで、分割ログファイルを使用して生きていますか?
私は https://github.com/mahmoud/lithoxyl/blob/master/lithoxyl/_syslog_emitter.pyを発見し、類似したクラスを作成したとして、私はいくつかの改善を行うことができた