Python logging 日志类

 1 # -*- coding: utf-8 -*-
 2 
 3 import os
 4 import logging
 5 from logging import handlers
 6 
 7 
 8 class Logger(object):
 9     level_relations = {
10         'debug': logging.DEBUG,
11         'info': logging.INFO,
12         'warning': logging.WARNING,
13         'error': logging.ERROR,
14         'crit': logging.CRITICAL
15     }  # 日志级别关系映射
16 
17     def __init__(self, filedir, filename, level='debug', when='midnight', backCount=0,
18                  fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):
19 
20         filedir = filedir + "\\logs"  # 在指定路径创建日志文件夹logs
21         if not os.path.exists(filedir):
22             os.mkdir(filedir)
23         filename = filedir + "\\" + filename
24         self.logger = logging.getLogger(filename)
25         format_str = logging.Formatter(fmt)  # 设置日志格式
26         self.logger.setLevel(self.level_relations.get(level))  # 设置日志最小级别
27         sh = logging.StreamHandler()  # 往屏幕上输出
28         sh.setFormatter(format_str)   # 设置屏幕上显示的格式
29         th = handlers.TimedRotatingFileHandler(filename=filename, when=when, backupCount=backCount,
30                                                encoding='utf-8')  # 往文件里写入#指定间隔时间自动生成文件的处理器
31         '''
32         实例化TimedRotatingFileHandler
33         interval是时间间隔,backupCount是备份文件的个数,如果超过这个个数,就会自动删除,when是间隔的时间单位,单位有以下几种:
34         S 秒
35         M 分
36         H 小时、
37         D 天、
38         W 每星期(interval==0时代表星期一)
39         midnight 每天凌晨
40         '''
41         th.setFormatter(format_str)  # 设置文件里写入的格式
42         th.suffix = "%Y%m%d_%H%M%S.log"  # 设置日志文件后缀,以当前时间作为日志文件后缀名
43         self.logger.addHandler(sh)   # 把对象加到logger里
44         self.logger.addHandler(th)
45 
46 
47 if __name__ == '__main__':
48     log = Logger(os.getcwd(), "all.log", level='debug')
49     log.logger.debug('debug')
50     log.logger.info('info')
51     log.logger.warning('警告')
52     log.logger.error('报错')
53     log.logger.critical('严重')

转载自:https://www.cnblogs.com/lanyinhao/p/10797610.html

 

posted @ 2019-09-25 16:17  追风少年2021  阅读(293)  评论(0)    收藏  举报