gpt4 book ai didi

python - 在 Python 2.6 中使用 logging.SysLogHandler 时如何设置标识字符串?

转载 作者:太空狗 更新时间:2023-10-29 22:08:29 25 4
gpt4 key购买 nike

我使用 logging.fileConfig() 配置了日志记录。我有一个根记录器转到使用 SysLogHandler('/dev/log', handlers.SysLogHandler.LOG_USER)

的处理程序

这一切都很好,我在/var/log/user.log 中看到了我的日志条目

问题是如何将 syslog 标识字符串设置为 python 以外的字符串?标准库中的 syslog 模块似乎允许在打开日志时设置此项,但日志处理程序不提供此功能。

解决方案是继承 SysLogHandler 并在其 emit 方法中使用 syslog 库吗?这是一个仅限 unix 的程序,因此直接使用 syslog 不会造成可移植性问题。

最佳答案

这有点旧,但应该在此处记录新信息,这样人们就不需要编写自己的系统日志处理程序。

自 Python 3.3 起,SysLogHandler具有 .ident 的类属性正是为了这个目的;它的默认值为 ''。

例子:

import logging
from logging.handlers import SysLogHandler

h = SysLogHandler(address=('some.destination.com',514), facility=SysLogHandler.LOG_LOCAL6)
h.setFormatter(
logging.Formatter('%(name)s %(levelname)s %(message)s')
)
h.ident = 'conmon'

syslog = logging.getLogger('syslog')
syslog.setLevel(logging.DEBUG)
syslog.addHandler(h)

syslog.debug('foo syslog message')

关于python - 在 Python 2.6 中使用 logging.SysLogHandler 时如何设置标识字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4261253/

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