日志类模板
# 封装日志类
项目在运行的时候,我们不可能一直盯着控制台. 需要使用“日志文件”的形式,来记录运行状态
python基础库中的logging是用来处理日志的 logging库里有三个大模块
1.日志器:是日志的入口,好比生活中写笔记,需要先有一个“本子” 它描述了日志的级别:debug(调试)、info、warning、error、critical
2.格式器:每一条记录,需要有什么样的信息(日志的时间、记录的方法、变量)
3.处理器:决定了日志数据如何处理,比如说写入到某个文件、输出到控制台、日志文件3个小时新建一个新文件
#!/anaconda3/envs/FEALPy/bin python3.7
# -*- coding: utf-8 -*-
# ---
# @File: 日志处理.py
# @Author: Bull
# ---
import logging.handlers
# 1.日志器
# 创建日志器对象
logger = logging.getLogger()
#设置日志级别
logger.setLevel(logging.INFO)
# 2.格式器
# 格式器会解析符合规则的字串
fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d] - %(message)s"
fm = logging.Formatter(fmt)
# 3.处理器
tf = logging.handlers.TimedRotatingFileHandler(
filename = 'test.log',
when = 'D',
backupCount = 7,
encoding = 'utf-8'
)
# 在“处理器”对象中装载“格式器”对象
tf.setFormatter(fm)
# 给“处理器”设置级别
tf.setLevel(logging.INFO)
logger.addHandler(tf)
# *实际上,日志功能实现了一个“生产者”→“消费者”的模式
# logger.info('调试信息')、logger.debug('调试信息')这样的方法生产了“日志”数据对象
# logger.addHandler(tf)-即增加一个日志数据的“消费者”,tf处理器描述了“消费者”如何使用数据
if __name__ == '__main__':
logger.debug('调试信息')
logger.info('消息级别的调试信息')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
上次更新: 2023/09/05, 02:16:11