使用Python日志记录格式的制表

时间:2010-05-05 22:17:06

标签: python logging

我正在使用带有“native”的python日志记录模块 配置文件支持(config.fileconfig),如以下文档中所述:

http://docs.python.org/library/logging.html(参见logging.conf文件)

我想知道是否可以在配置文件中提供列表数据格式:

示例配置文件如下:

[formatter_simpleFormatter]  
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s

我虽然在格式中使用\ t就足够但不会:

format=%(asctime)s\t%(name)s\t%(levelname)s\t%(message)s\t  

我尝试了一些没有成功的事情。我想这很容易,但是我找不到它!

我该怎么做?

2 个答案:

答案 0 :(得分:15)

很抱歉来晚会,但这些信息对其他人也很有用......

我还想要一个列表的日志,特别是“levelname”字段

我的格式看起来像这样

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

使我的日志看起来像这样

2014-10-01 17:42:54,261 - INFO - internal.....
2014-10-01 17:43:09,700 - DEBUG - internal.....
2014-10-01 17:44:02,994 - WARNING - internal.....
2014-10-01 17:44:31,686 - CRTITICAL - internal.....

我的解决方案是改变这样的格式

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

这使我的日志变成了这样的

2014-10-01 17:42:54,261 - INFO      - internal.....
2014-10-01 17:43:09,700 - DEBUG     - internal.....
2014-10-01 17:44:02,994 - WARNING   - internal.....
2014-10-01 17:44:31,686 - CRTITICAL - internal.....

“8”是预期最长字符串的长度,在本例中为“CRITICAL”。 “ - ”告诉右键填充字符串

旁注:做

print "-%3s-" % "abcd"

将输出

-abcd-

......字符串不会被截断

答案 1 :(得分:6)

您是否尝试在配置文件中输入文字制表符而不是\t?这对我有用。