首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >syslog.syslog对SysLogHandler

syslog.syslog对SysLogHandler
EN

Stack Overflow用户
提问于 2012-12-27 05:59:17
回答 3查看 6K关注 0票数 21

我正在研究如何从Python应用程序中登录到syslog,我发现有两种方法可以这样做:

  1. 使用syslog.syslog()例程
  2. 使用记录器模块SysLogHandler

哪一种是最好的选择,每种方法的优缺点,等等,因为我真的不知道我应该使用哪一种。

EN

回答 3

Stack Overflow用户

发布于 2012-12-27 06:17:10

syslog.syslog()只能用于将消息发送到本地syAdd.1-d。SysLogHandler可以作为一个全面的、可配置的日志记录子系统的一部分使用,并且可以登录到远程机器。

票数 11
EN

Stack Overflow用户

发布于 2013-02-09 06:39:04

日志模块是一种更全面的解决方案,可以处理所有日志消息,并且非常灵活。例如,您可以为您的记录器设置多个手,并且可以将每个手设置为不同级别的日志。您可以有一个用于向syslog发送错误的SysLogHandler,一个用于调试日志的FileHandler,以及一个用于将真正重要的消息发送给操作系统的SMTPHandler。还可以在模块中定义记录器的层次结构,每个记录器都有自己的级别,因此可以启用/禁用来自特定模块的消息,例如:

代码语言:javascript
复制
import logging
logger = logging.getLogger('package.stable_module')
logger.setLevel(logging.WARNING)

在另一个模块中:

代码语言:javascript
复制
import logging
logger = logging.getLogger('package.buggy_module')
logger.setLevel(logging.DEBUG)

这两个模块中的日志消息将根据级别的不同发送到“package”记录器,并最终发送到您定义的处理程序。还可以将处理程序直接添加到模块记录器,等等。如果您已经完成了这一步,并且仍然感兴趣,那么我建议您跳到日志记录教程了解更多细节。

票数 5
EN

Stack Overflow用户

发布于 2017-08-31 12:16:54

到目前为止,logging.handlers.SysLogHander还存在一个尚未被提及的缺点。也就是说,我不能设置像LOG_ODELAYLOG_NOWAITLOG_PID这样的选项。另一方面,可以通过添加更多的处理程序来实现LOG_CONSLOG_PERROR,默认情况下LOG_NDELAY已经被设置,因为当处理程序被实例化时连接会打开。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14050081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档