1.四大组件
四大组件包括:Logger,Handler,Filter和Formatter。

2.Logger类的相关方法
logger类的主要方法如下:

3.Handler类
Handler对象的作用是基于日志消息的level,将消息分发到handler指定的位置,例如文件,网络等。常用的方法如下所示:

handler的相关子类如下所示:

代码如下:会在同目录下生成一个all.log文件
import logging
import logging.handlers
import datetime
logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)
rf_handler = logging.handlers.TimedRotatingFileHandler('all.log', when='midnight', interval=1, backupCount=7, atTime=datetime.time(0, 0, 0, 0))
rf_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))
f_handler = logging.FileHandler('error.log')
f_handler.setLevel(logging.ERROR)
f_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(filename)s[:%(lineno)d] - %(message)s"))
logger.addHandler(rf_handler)
logger.addHandler(f_handler)
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
输出如下:

这篇博客介绍了Python日志模块的基本组件,包括Logger、Handler和Formatter,并展示了如何使用Handler中的TimedRotatingFileHandler类按天进行日志文件的轮转。示例代码创建了两个Handler,一个用于记录所有级别的日志到'all.log',另一个仅记录错误及以上级别的日志到'error.log'。通过设置,日志文件在每天午夜时分会自动滚动并保留7天的历史记录。
1557

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



