Python开发之日志记录模块:logging(8)

# _*_coding:utf-8_*_ import logging from logging.config import fileConfig fileConfig('log.conf') root= logging.getLogger(name="root") log_1= logging.getLogger(name="log_1") log_2= logging.getLogger(name="log_2") root.debug('root_debug') root.info('root_info') root.warning('root_warning') log_1.debug('log_1_debug') log_1.info('log_1_info') log_1.warning('log_1_warning') log_2.debug('log_2_debug') log_2.info('log_2_info') log_2.warning('log_2_warning')

程序运行后,控制台输出如下:

2019-03-29 21:43:24 root_debug

2019-03-29 21:43:24 root_info

2019-03-29 21:43:24 root_warning

a.log文件将被写入以下内容:

2019-03-29 21:43:24 main.py INFO log_1_info

2019-03-29 21:43:24 main.py WARNING log_1_warning

b.log文件将被写入以下内容:

2019-03-29 21:43:24 main.py WARNING log_2_warning

4.3 日志回滚

什么是日志回滚呢?咋一听,好像不知道是什么东西。日志回滚就是按照日期或者时间(有时候甚至是日志和时间综合作用),对日志进行分割或者删除。实际开发中经常需要用到,因为随着应用的持续运行,日志文件会越来越庞大,对系统的性能产生影响,所以有必要删除早起的日志。

logging中提供了两个处理器用于日志回滚,一个是RotatingFileHandler,它主要是根据日志文件的大小进行滚动,另一个是TimeRotatingFileHandler,它主要是根据时间进行滚动。

(1)根据文件大小进行回滚

按文件大小回滚的类是RotatingFileHandler:

 

# -*- coding:utf-8 -*- import logging from logging.handlers import RotatingFileHandler logger = logging.getLogger('main') logger.setLevel(level = logging.INFO) # 定义一个RotatingFileHandler,最多备份三个日志文件, 每个日志文件最大1k file_handler = RotatingFileHandler(".log",maxBytes = 1*1024,backupCount = 3) file_handler.setLevel(logging.INFO) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') file_handler.setFormatter(formatter) cons_handler = logging.StreamHandler() cons_handler.setLevel(logging.DEBUG) cons_handler.setFormatter(formatter) logger.addHandler(file_handler) logger.addHandler(cons_handler) if __name__=='__main__': while True: logger.debug("debug") logger.info("info") logger.warning("warning") logger.critical("critical")

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d642fc980407ebf79378f34feecfa099.html