美文网首页
logging模块

logging模块

作者: 火气大 | 来源:发表于2018-08-12 11:51 被阅读0次
 1 # 日志等级
 2 logging.debug() # 10
 3 logging.info()  # 20
 4 logging.warning()   # 30
 5 logging.error() # 40
 6 logging.critical()  # 50
 7 
 8 
 9 # logger对象:负责产生各种级别的日志
10 log = logging.getLogger('name') # name 用来表示日志与什么业务有关
11 log.info()
12 log.error()
13 ....
14 
15 # filter对象:过滤日志
16 
17 
18 # handler对象:控制输出的目标
19 s = logging.FileHandler('文件')
20 s1 = logging.StreamHandler() # 终端
21 
22 # formatter对象:日志格式
23 logging.Formatter()
24 
25 # 绑定logger与handler
26 log.addHandler(s)
27 log.addHandler(s1)
28 
29 # 绑定formatter与handler
30 s.setFormatter(formatter)
31 
32 # logger产生日志
33 log.info('aaa')

日志模版

 1  # 定义日志输出格式
 2 standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \
 3                   '[%(levelname)s][%(message)s]'  # 其中name为getlogger指定的名字
 4 simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
 5 
 6 id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s'
 7 
 8 
 9 # 如果不存在定义的日志目录就创建一个
10 if not os.path.isdir(BASE_LOG):
11     os.mkdir(BASE_LOG)
12 
13 # log文件的全路径
14 logfile_path = os.path.join(BASE_LOG, 'log.log')
15 
16 # log配置字典
17 LOGGING_DIC = {
18     'version': 1,
19     'disable_existing_loggers': False,
20     'formatters': {
21         'standard': {
22             'format': standard_format
23         },
24         'simple': {
25             'format': simple_format
26         },
27     },
28     'filters': {},
29     'handlers': {
30         # 打印到终端的日志
31         'console': {
32             'level': 'DEBUG',
33             'class': 'logging.StreamHandler',  # 打印到屏幕
34             'formatter': 'simple'
35         },
36         # 打印到文件的日志,收集info及以上的日志
37         'default': {
38             'level': 'DEBUG',
39             'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件
40             'formatter': 'standard',
41             'filename': logfile_path,  # 日志文件
42             'maxBytes': 1024 * 1024 * 5,  # 日志大小 5M
43             'backupCount': 5,
44             'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
45         },
46 
47     },
48     'loggers': {
49         # logging.getLogger(__name__)拿到的logger配置
50         '': {
51             'handlers': ['default', 'console'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
52             'level': 'INFO',
53             'propagate': True,  # 向上(更高level的logger)传递
54         },
55     },
56 }

相关文章

网友评论

      本文标题:logging模块

      本文链接:https://www.haomeiwen.com/subject/rclsbftx.html