【问题标题】:How to setup python.logging format using f-string style如何使用 f-string 样式设置 python.logging 格式
【发布时间】:2019-05-23 06:35:29
【问题描述】:

我正在使用 python 3.7 编写一个应用程序,并且只想在其中使用 f-strings

我正在使用 python 日志记录模块来正确记录我的应用程序,并且我想使用特定格式,但文档(和网络)仅举例说明如何使用 %-strings 更改格式。 我想知道是否有使用 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}")。因此,在实践中,您不必处理超出日志设置的奇怪格式字符串。
  • 我在记录消息中使用 f 字符串没有问题 (logger.error() / logger.info() / etc...),我只是想知道在日志格式化程序中是否有使用 f 字符串格式的选项..

标签: python-3.x python-3.6 python-3.7 f-string python-logging


【解决方案1】:

您可以使用参数style 设置为"{" 来初始化logging.Formatter

示例

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

样式的可用选项是documented

在此之后将格式化程序附加到处理程序并将处理程序添加到所需的记录器。

如果您使用的是logging.basicConfig,您可以通过以下方式进行设置:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 2022-07-26
    • 2017-09-15
    • 2011-07-19
    • 2019-05-31
    相关资源
    最近更新 更多