我正在研究如何从我的Python应用程序中记录到syslog,并发现有两种方法:
- 使用syslog.syslog()例程
- 使用日志记录器模块SysLogHandler
哪个选项是最好的,每个选项的优缺点等等,因为我真的不知道应该使用哪一个。
我正在研究如何从我的Python应用程序中记录到syslog,并发现有两种方法:
哪个选项是最好的,每个选项的优缺点等等,因为我真的不知道应该使用哪一个。
syslog.syslog()
只能用于向本地 syslogd 发送消息。SysLogHandler
可以作为一种综合的可配置日志子系统的一部分使用,并可以记录到远程机器。
syslog.syslog()
并配置syslog服务最终更加全面。 - fearless_foolimport logging
logger = logging.getLogger('package.stable_module')
logger.setLevel(logging.WARNING)
import logging
logger = logging.getLogger('package.buggy_module')
logger.setLevel(logging.DEBUG)
logging.handlers.SysLogHander
存在一个尚未提及的缺点。那就是我无法设置像LOG_ODELAY
或LOG_NOWAIT
或LOG_PID
这样的选项。另一方面,可以通过添加更多的处理程序来实现LOG_CONS
和LOG_PERROR
,并且LOG_NDELAY
已经默认设置好了,因为在处理程序实例化时连接已经打开。