は、ロギングチュートリアルからのログレコードのサンプルです:Python logging.Formatter():フィールドの幅を修正し、左か右に正当化する方法はありますか?ここ
2005-03-19 15:38:55,977 - simpleExample - DEBUG - debug message
2005-03-19 15:38:55,979 - simpleExample - INFO - info message
2005-03-19 15:38:56,054 - simpleExample - WARNING - warn message
2005-03-19 15:38:56,055 - simpleExample - ERROR - error message
2005-03-19 15:38:56,130 - simpleExample - CRITICAL - critical message
この末尾のギザギザはありません最後に私を悩まします。
私は本当にこのようにフォーマットすることができるようにしたい:
2005-03-19 15:38:55,977 - simpleExample - DEBUG - debug message
2005-03-19 15:38:55,979 - simpleExample - INFO - info message
2005-03-19 15:38:56,054 - simpleExample - WARNING - warn message
2005-03-19 15:38:56,055 - simpleExample - ERROR - error message
2005-03-19 15:38:56,130 - simpleExample - CRITICAL - critical message
私は動作しません、私のロガー、(略しコード)のために次のことをしようとしました:
fmt = "{0:>8}"
formatter = logging.Formatter("%(asctime)s %(filename)s: " + fmt.format("%(levelname)s") + " %(message)s", "%Y/%m/%d %H:%M:%S")
この細かく実行され、常にレベル名が出力されますが、幅の形式は実装されません。
Ex。
logger.debug("testing debug message")
logger.info("some random info")
logger.critical("oh crap!")
実際の結果:
2013/12/16 13:43:10 logtester: DEBUG testing debug message
2013/12/16 13:43:10 logtester: INFO some random info
2013/12/16 13:43:10 logtester: CRITICAL oh crap!
所望の結果:
2013/12/16 13:43:10 logtester: DEBUG testing debug message
2013/12/16 13:43:10 logtester: INFO some random info
2013/12/16 13:43:10 logtester: CRITICAL oh crap!
logging.Formatterフィールドの固定幅を実現するために、任意のヒント()?
Python 2.6.9を使用しています。
EDIT:別の方法で使用して、第2の試み:
formatter = logging.Formatter("%(asctime)s %(filename)s: " + "%(foo)5s" % {"foo" : "(%(levelname)s)"} + " %(message)s", "%Y/%m/%d %H:%M:%S")
はまだ、その結果:
2013/12/16 13:43:10 logtester: DEBUG testing debug message
2013/12/16 13:43:10 logtester: INFO some random info
2013/12/16 13:43:10 logtester: CRITICAL oh crap!
たぶん私はちょうどboneheaded何かをやっています。
可能な重複[右のPython logging.Formatterにレベルのフィールドを揃える方法](http://stackoverflow.com/questions/7771912/how-to-right- align-level-field-in-python-logging-formatter) –