後のDjangoの設定ではありません:、graylogフィルタIは、以下の辞書としてログ構成を設定したコンフィギュレーション
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'simple': {
'format': '%(levelname)s %(message)s'
}
},
'filters': {
'fields': {
'env': 'test'
}
},
'handlers': {
'graypy': {
'level': 'DEBUG',
'class': 'graypy.GELFHandler',
'host': 'graylog2.example.org',
'port': 12201,
'filters': ['fields']
}
},
'loggers': {
'testlogger': {
'handlers': ['graypy'],
'level': 'DEBUG',
'propagate': True
}
}
}
私はmanage.py
を介してアプリケーションのフェーズを実行した後、私はfilters
を見ていないenv:test
graylog GUIで私のためにポップアップしたので、設定をローカルでpython manage.py shell
と確認しました。コンソールでは、私は、次のチェックがあります。
l = logging.getLogger('testlogger')
l.handlers[0].filters[0].fields
をそして、それは予想通り、リスト内のenv:test
を持っている必要がありAttributeError: 'Filter' object has no attribute 'fields'
を返します。私はdjangoのGELFhandler
のためにfilters
を設定する方法のチュートリアルを読んできました、それらはすべて上記の私の設定のような類似のフォーマットを持っているようです、なぜフィルタは私のロガーのために設定されていません。