登录python时如何选择处理程序

ibr*_*him 5 python logging handler

我正在使用 python 开发一个项目,我需要帮助记录日志部分。我的记录器有两个处理程序(系统日志和文件日志),并将日志发送给它们。有时我只需要发送日志中的一个。如何选择要使用的处理程序?感谢帮助...

global my_Sysloghandler
global my_logger, my_log_handler

my_Sysloghandler=logging.handlers.SysLogHandler()
my_log_handler= logging.FileHandler('/var/log/{0}.log'.format(__project__))
my_log_handler.setFormatter(logging.Formatter('%(asctime)s %(message)s'))                                                                              
my_log_handler.setLevel(level)
my_logger= logging.getLogger('my_logger')
my_logger.addHandler(my_log_handler)
my_logger.addHandler(my_Sysloghandler)

my_logger.debug('This log is sent to both handler but I want to send it only my_logger')
Run Code Online (Sandbox Code Playgroud)

Ray*_*ger 5

我认为你的选择是:

  • 优先考虑其中之一(即 SysLogHandler 获取 INFO 消息或以上,而 FileHandler 获取 DEBUG 或以上)
  • 使用两个不同的记录器实例。

FWIW,常规日志记录文档可能很难阅读。相反,请查看Logging HOWTOLogging Cookbook以获得更容易理解的内容。