gpt4 book ai didi

python - 如何从 Python 中的 logging.formatter 对象获取格式化程序字符串?

转载 作者:太空狗 更新时间:2023-10-30 00:34:51 26 4
gpt4 key购买 nike

我想制作一个日志管理器图形用户界面。基本上我想获得记录器的树结构并在 pyqt gui 中显示它们的级别和格式化程序。如何从与处理程序对象关联的格式化程序中获取格式字符串?

例如:

import logging
_logger = logging.getLogger('myLogger')

ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
formatter = logging.Formatter('%(name)s:%(levelname)s: %(message)s')
ch.setFormatter(formatter)
_logger.addHandler(ch)
_logger.propagate=0

现在我有了 _logger,如何从 '%(name)s:%(levelname)s: %(message)s' 获取字符串 logging.Formatter 对象?

>>> _logger.handlers[0]
<logging.StreamHandler object at 0x13807610>
>>> _logger.handlers[0].formatter
<logging.Formatter object at 0x13807690>

最佳答案

logging.Formatter 实例有一个 _fmt 属性:

>>> _logger.handlers[0].formatter
<logging.Formatter object at 0x102c72fd0>
>>> _logger.handlers[0].formatter._fmt
'%(name)s:%(levelname)s: %(message)s'

您始终可以在对象上使用 dir()vars() 来查看可用的名称:

>>> vars(_logger.handlers[0].formatter)
{'datefmt': None, '_fmt': '%(name)s:%(levelname)s: %(message)s'}

或者你可以直接look at the source code (从 module documentation 的顶部链接)。

关于python - 如何从 Python 中的 logging.formatter 对象获取格式化程序字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38413674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com