2016-06-17 8 views
1

私のPythonコードでは、辞書をロガーに渡します。Pythonロガーが「余分な」辞書情報を表示しない

extra_info = {"test":"data"} 
logger.info("",extra=extra_info)  

私の希望は、印刷するための余分な情報を取得することであり、私はそれがメッセージにあったと仮定が、私はこのフォーマット

format=%(asctime)s %(levelname)s %(name)s: %(message)s 

を使用する場合extra_info内容が印刷されていません。私はちょうどlogging docsによると、以下の

2016/06/17 13:10:47 INFO test: 
+0

これはちょうどタイプミスでした。ありがとうございました –

+0

心配はありません。 – bernie

答えて

2

を取得し、extraキーワード引数は、レコードをログに記録する追加のコンテキストを追加するために使用されます。あなたはこのようにフォーマッタを設定し、dictのキーを渡すのを忘れた場合、あなたが買ってあげること

format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s - %(EXTRA_DICT_KEY)s' 

注:

あなたはdictのキーを追加することにより、フォーマッタでextraパラメータを経由して渡された情報を使用することができます文字列フォーマット例外。


あなたはあなたの例でわかるように、あなたは、フォーマッタで任意のキーを指定していません。だから、

、代わりに:

format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s' 

試してみてください。

format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s - %(test)s' 

  • あなたは、いくつかの他の便利な情報hereを見つけることができます。
+0

よろしくお願いします。メッセージを追加したばかりだと思って、そのセクションを読んでいただきありがとうございます。だから、基本的には、私の例では%(test)を追加してもうまくいくでしょう。本当にありがとう。 –

関連する問題