0

我正在使用处理程序 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)

当我尝试此代码时,它要么发送到文件和电子邮件,要么什么都不发送。谁能帮我指出我做错了什么,或者这是否可能。非常感谢您的帮助。

4

1 回答 1

1

您当前将 SMTPHandler 级别设置为 INFO,因此任何具有 INFO 或更高级别的事件都将由该处理程序处理。您可以将倒数第二行替换为

maillog_handler.setLevel(logging.ERROR)

这样只有 ERROR 和 CRITICAL 事件会发送到电子邮件。

于 2019-01-11T23:27:58.493 回答