私は、次の形式の文字列でのpythonのログを使用しています:Pythonロギングフォーマット:ロガー名の最後の部分だけを印刷するには?
'format': '%(asctime)s %(levelname)s %(name)s - %(message)s'
%(name)s
一部を印刷ロガー名:他のロギングファシリティ(のようなのlog4j)私はしたいと同様
2017-10-26 13:17:58,019 INFO device_gps.comm.protocol - GPSProtocol(port=COM13) - Starting GPS serial communications (port: COM13) 2017-10-26 13:17:58,022 INFO scs_control.context - Starting component: DeviceGPS 2017-10-26 13:17:58,033 INFO scs_elevation.elevation - Initializing ElevationModel engine instance.
簡潔にするためにロガー名の最後の部分だけを印刷するようにします(上の例では太字で示しています)。
このother answerは、ロガー名を変更することを提案していますが、そうすることで親子ロガー関係が破壊されるため、ロガーのグループのロギングを構成することは本当に便利です。
ロガー名の最後の部分を印刷するにはどうすればよいですか?ロギングで使用可能な
素晴らしいです。フィルターがフィールドを追加できるかどうか分かりませんでした(むしろ、フォーマット文字列は文字列補間のデータオブジェクトとしてログレコードを使用します)。ありがとう、あなたロック! – jjmontes
@jjmontesフィルタを使用してフィールドを追加する方法については、https://docs.python.org/3/howto/logging-cookbook.html#using-filters-to-impart-contextual-information –