我正在使用处理程序TimeRotatingFileHandler和SMTPHandler。我想将INFO消息发送到文件日志,将异常发送到电子邮件。我的设置如下:
import logging
from logging.handlers import TimeRotatingFileHandler
from logging.handlers import SMTPHandler
filelog_handler = TimedRotatingFileHandler(output_file, when='midnight')
filelog_handler.setFormatter(log_formatter)
filelog_handler.setLevel(logging.DEBUG)
logger.addHandler(filelog_handler)
maillog_handler = SMTPHandler(mailhost=("email.address.org", 25),
fromaddr="email@address.org",
toaddrs="email@address.org",
subject="send_err_email.py Message")
maillog_handler.setLevel(logging.INFO)
logger.addHandler(mail_log)
当我尝试此代码时,它要么发送到文件和电子邮件,要么什么都不发送。谁能帮助我指出我在做什么错,或者甚至有可能这样做。非常感谢您的帮助。
答案 0 :(得分:1)
您当前在INFO中设置了SMTPHandler级别,因此任何级别为INFO或更高级别的事件都将由该处理程序处理。 您可以将倒数第二行替换为
maillog_handler.setLevel(logging.ERROR)
以便仅将ERROR和CRITICAL事件发送到电子邮件。