小编典典

python日志记录字符串格式

python

我正在使用python的日志格式化程序来格式化日志记录,并且我的fmt值为

fmt = "[%(filename)s:%(lineno)s] %(message)s"

我想要的是将[[file.py:20]”扩展到10个字符的宽度(例如)。如果这是一个简单的值,但是有什么办法可以将整个结构拉伸到指定的长度?我想要类似的东西:

tmp = "[%(filename)s:%(lineno)s]"
fmt = "%(tmp)10s %(message)s"

我想知道是否可以使用字符串格式设置,或者是否可以以某种方式欺骗python的格式化程序以获取我想要的。


阅读 219

收藏
2021-01-20

共1个答案

小编典典

选项1

从这里开始:http :
//docs.python.org/library/logging.html#formatter-
objects

您将创建自己的自定义子类,Formatter该子类将提供自己的唯一format方法。

然后,您必须确保setFormatter()每个人都调用,Handlers以便他们使用新的格式化程序。

选项2

使用其他属性创建您自己的LogRecord子类。

子类Logger和重写makeRecord以创建的新子类LogRecord

提供使用此新属性值的自定义格式。

2021-01-20