在Python日志格式中使用制表符

19 投票
2 回答
14484 浏览
提问于 2025-04-15 22:24

我正在使用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 个回答

44

抱歉我来得有点晚,但这些信息对其他人也可能有用...

我也想要一个看起来像表格的日志,特别是“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 - CRITICAL - internal.....

这里的“8”是指在这个位置上最长的字符串长度,在这个例子中是“CRITICAL”。 “-”表示要在字符串的右边填充空格。

附带说明:执行

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

会输出

-abcd-

... 这样字符串就不会被截断了。

7

你有没有试过在配置文件里直接输入一个实际的制表符,而不是写\t?这样对我来说是有效的。

撰写回答