我正在研究如何从Python应用程序中登录到syslog,我发现有两种方法可以这样做:
哪一种是最好的选择,每种方法的优缺点,等等,因为我真的不知道我应该使用哪一种。
发布于 2012-12-27 06:17:10
syslog.syslog()只能用于将消息发送到本地syAdd.1-d。SysLogHandler可以作为一个全面的、可配置的日志记录子系统的一部分使用,并且可以登录到远程机器。
发布于 2013-02-09 06:39:04
日志模块是一种更全面的解决方案,可以处理所有日志消息,并且非常灵活。例如,您可以为您的记录器设置多个手,并且可以将每个手设置为不同级别的日志。您可以有一个用于向syslog发送错误的SysLogHandler,一个用于调试日志的FileHandler,以及一个用于将真正重要的消息发送给操作系统的SMTPHandler。还可以在模块中定义记录器的层次结构,每个记录器都有自己的级别,因此可以启用/禁用来自特定模块的消息,例如:
import logging
logger = logging.getLogger('package.stable_module')
logger.setLevel(logging.WARNING)在另一个模块中:
import logging
logger = logging.getLogger('package.buggy_module')
logger.setLevel(logging.DEBUG)这两个模块中的日志消息将根据级别的不同发送到“package”记录器,并最终发送到您定义的处理程序。还可以将处理程序直接添加到模块记录器,等等。如果您已经完成了这一步,并且仍然感兴趣,那么我建议您跳到日志记录教程了解更多细节。
发布于 2017-08-31 12:16:54
到目前为止,logging.handlers.SysLogHander还存在一个尚未被提及的缺点。也就是说,我不能设置像LOG_ODELAY、LOG_NOWAIT或LOG_PID这样的选项。另一方面,可以通过添加更多的处理程序来实现LOG_CONS和LOG_PERROR,默认情况下LOG_NDELAY已经被设置,因为当处理程序被实例化时连接会打开。
https://stackoverflow.com/questions/14050081
复制相似问题