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

时间:2011-12-10 07:41:33

标签: python logging handler

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

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')

1 个答案:

答案 0 :(得分:1)

我认为您的选择是:

  • 优先考虑另一个(即SysLogHandler获取INFO消息或更高版本,而FileHandler获取DEBUG或更高版本)
  • 使用两个不同的记录器实例。

FWIW,常规日志记录文档很难通读。相反,请查看Logging HOWTOLogging Cookbook以获取更易消化的内容。