私の現在のフォーマット文字列は次のとおりです。
formatter = logging.Formatter('%(asctime)s : %(message)s')
そして、app_name
このフォーマッターを含む各スクリプトで異なる値を持つという新しいフィールドを追加したいと思います。
import logging
formatter = logging.Formatter('%(asctime)s %(app_name)s : %(message)s')
syslog.setFormatter(formatter)
logger.addHandler(syslog)
しかし、そのapp_name
値をロガーに渡してフォーマット文字列に補間する方法がわかりません。毎回渡すことで明らかにログメッセージに表示させることができますが、これは面倒です。
私はもう試した:
logging.info('Log message', app_name='myapp')
logging.info('Log message', {'app_name', 'myapp'})
logging.info('Log message', 'myapp')
しかし、どれも機能しません。
log
呼び出しに渡しますか?もしそうなら、「この機能はあなた自身の値をLogRecordに注入するために使用することができます…」と書かれているドキュメントを見てください。しかし、これはlogger = logging.getLogger('myapp')
それを使用してlogger.info
呼び出しに焼き付けるための主要なケースのようです。