如何在Python中配置邮件发送日志?
前几有人在群里问,说了一些关于Python配置邮件发送日志,我感觉挺涨知识的,所以在这里就记录一下以便日后自己使用避坑。
- 我们可以使用Python的logging.handlers.SMTPHandler方法,把日志发送到指定的邮箱。之前使用 163 邮箱配置参数之后可以放心使用,但是使用QQ的企业邮箱却一直报错,总是说登录超时。
最后通过阅读logging的源码找到了原因,logging默认支持TLS连接,QQ企业邮箱和Gmail都是使用SSL连接的。
- 最后附上一个简单的配置
# logging.conf完整配置 [loggers] keys=root,test [handlers] keys=consoleHandler,fileHandler,testHandler [formatters] keys=simpleFormatter [formatter_simpleFormatter] format=%(asctime)s - %(name)s - %(levelname)s - %(message)s - [%(filename)s:%(lineno)s] datefmt= [logger_root] level=INFO handlers=consoleHandler,fileHandler [logger_test] level=INFO handlers=testHandler qualname=test propagate=0 [handler_consoleHandler] class=StreamHandler level=INFO formatter=simpleFormatter args=(sys.stdout,) [handler_fileHandler] class=FileHandler level=INFO formatter=simpleFormatter args=('log/spider_db.log', 'a') [handler_testHandler] class=handlers.SMTPHandler level=INFO formatter=simpleFormatter args=(('smtp.163.com',25), 'username@163.com', ['somebody01@example.com','somebody02@example.com'], 'Test SMTPHandler', ('username', 'password')) python # 邮件测试例子 import logging import logging.config logging.config.fileConfig("logging.conf") logger = logging.getLogger('test') logger.info('hello body ~')
以上就是如何在Python中配置邮件发送日志?的详细内容,更多请关注其它相关文章!