如何使用f-string格式设置python.logging的日志输出格式

8

我正在使用Python 3.7编写应用程序,并希望仅使用f-strings

我正在使用Python日志记录模块以正确记录我的应用程序,并且我想使用特定的格式,但是文档(和网络)只提供使用“ -字符串”更改格式的示例。

我想知道是否有选项可以使用f-strings设置记录器格式。

LOG_FORAMT = ('%(levelname)s -10s %(asctime)s -10s %(message)s') # Known example

f-LOG_FORMAT = (f'{logger.levelname} -10s') # Something like that?

设置格式,然后在消息中使用fstrings:logger.error(f"bad var: {var}")。因此,在实践中,您不必处理超出日志设置的奇怪格式字符串。 - Ben
我在使用日志消息(logger.error() / logger.info() / 等等...)中使用f-strings没有问题,只是想知道是否有选项可以在日志格式化程序中使用f-string格式。 - kaki gadol
1个回答

16
你可以使用参数 style 设置为 "{" 来初始化 logging.Formatter例子
formatter = logging.Formatter("{processName:<12} {message} ({filename}:{lineno})", style="{")

样式的可用选项已经记录

然后将格式化程序附加到处理程序,并将处理程序添加到所需的记录器中。

如果您正在使用logging.basicConfig,则可以使用以下方式进行设置:

logging.basicConfig(format="{processName:<12} {message} ({filename}:{lineno})", style="{")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接