一、日志系统
首先,关日志系统的设计参考这篇博客。
1、日志系统基本用途
(1)多线程情况下,debug调试非常困难
(2)错误出现可能有一些随机性
(3)性能分析
(4)错误记录与分析
(5)运行状态的实时监测
2、日志系统设计
(1)错误级别:Debug,Info,Warning,Error,Fatal
错误级别逐渐增强, logging.DEBUG 可查询其错误级别等级(大写)
当设置一个级别后,小于该级别的日志不能输出,只能输出大于该级别的
(2)日志的来源(通道):MySQL,Connection,Threading,etc
logging.getLogger('redis').debug('Simple Log Test!')
‘redis’:通道
debug:错误等级
‘Simple Log Test !’:错误信息
(3)日志输出位置:file,console,database
'handlers': {
'file': {
'level': 'WARN',
'formatter': 'simple',
'class': 'logging.FileHandler',
'filename': 'spider.log',
'mode': 'a',
'filters': ['warn']
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'database': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'formatter': 'simple',
'filename': 'spider.log',
'mode': 'a',
'filters': ['basic']
}
‘class’键对应的value是写入日志的形式
logging.FileHandler 继承 logging.StreamHandler
'propagate': True,
该语句的意思是是否让它在更高层也运行。如这里针对子类logging.FileHandler显示日志,那么针对父类logging.StreamHandler也显示日志;
'propagate': False,
如这里针对子类logging.FileHandler显示日志,那么针对父类logging.StreamHandler就不会显示日志;
3、Python日志系统
(1)loggers:创建日志并指明文件
(2)handlers:处理器,配置过滤器,输出等
(3)filters:配置过滤规则
(4)formatters:配置输出的文件格式
import logging
# 创建一个logger
logger = logging.getLogger('

最低0.47元/天 解锁文章
1307

被折叠的 条评论
为什么被折叠?



