settings.pyファイルを通して変数をログラインに追加しようとしています。Django:変数を設定ファイルに渡す
この設定のコード(伐採部分)されています
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'mail_admins': {
'level': 'CRITICAL',
'class': 'django.utils.log.AdminEmailHandler'
},
'customhandler':{
'level':'DEBUG',
'class':'logging.RotatingFileHandler',
'formatter':'custom_format',
'filename':LOG_LOCATION
},
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'CRITICAL',
'propagate': True,
},
'Logger_Custom1': {
'handlers':['customhandler'],
'level':'DEBUG',
'propagate':True
},
},
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
'custom_format':{
'format':'[%(asctime)s %(levelname)s T:%(threadName)s F:%(funcName)s ] %(message)s '
},
}
}
上記のコードは正常に動作しているが、今、私は最後に、変数を持っているために、各ログメッセージをしたいと思います。何かのように:
MyVariable = "Somelines"
[%(asctime)s %(levelname)s T:%(threadName)s F:%(funcName)s ] %(message)s 'MyVariable
私のログは、各ロギングラインの終わりにその変数の内容を持っています。私たちは、このようなビュー関数の中でそれを行うことができることを知っています:logging.warning('% before you %','Look','Leap')
しかし、それは私たちにはどこにでもその行を含める必要があります。また、変数名を追加または変更する必要があるときは、すべてのファイルのどこでもその行を変更する必要があります。
私はsettings.pyから直接行う方法があるかどうか疑問に思っていました.1つの変更を加えることができ、すべてのログメッセージに適用されます。
私は(ちょうど '%(メッセージ)S'後)、それは同様にあなたの実際のコードに役立つことを証明する書式文字列の末尾にスペースを追加しました!こうすることで、Djangoログメッセージとカスタムメッセージの間にスペースができます。 また、これは 'testvar'が文字列である限り有効です。文字列関数、つまり 'str(testvar)'でラップすることで、より堅牢にすることができます。 – Hannele
ねえ、それは素晴らしいヒントです......ありがとう... –