logging formatで定義に無いものを書く方法

以前のブログでlogging.propertyの書き方を書いていました。

 

suganoo.hatenablog.com

 

※logging.propertyだかlogging.confだか、どっちが適切な表現なのかはここでは置いておく。

 

logging.confを書いている時に、あれこんなことできないかなと悩みました。

  • ログにホスト名、ユーザー名入れられないかな?
  • ログの区切りはスペースじゃなくてタブで区切りたいな。

で、loggingのドキュメントを読んでも、あれ?ホスト名とかユーザー名って無いんですよね。

タブの区切り方も書いてない。(ように見える)
へーへー

https://docs.python.jp/3/library/logging.html#logrecord-attributes

 


んーっとどうしたものか、隠しコマンド的なものもないのかなと苦慮した挙句
一つの解決策を得た。


なんとLogRecord属性って自分でも定義できるんですね!!

 

logging.infoのパラメータにextraというパラメータがあって、
そこに独自定義したdictionary を渡してやると、

なんとそのままformatに定義した変数が入れ替わる!

 

タブも同じように渡してやって、区切りをタブにすることができました。


やったー すごいすっきりした。

 

ユーザー定義のLogRecord属性