debug——生成log

本文介绍了Python中使用logging模块生成日志的两种方式,包括基础用法和高级配置。基础方式展示了如何设置日志级别、输出格式,并将日志保存到文件。高级方式涉及到了记录器、处理器、过滤器的使用,以及如何控制台和文件分别输出不同级别的日志。通过示例代码,读者可以学习如何灵活管理和定制日志记录行为。
摘要由CSDN通过智能技术生成

1、生成log的简单方式

import logging

# logging是多线程运行的,能确保所有logging输出顺序是对的,但不能确保logging与print的输出顺序是对的
print('this a print log')

# log信息保存在demo.log中
# w写入模式,即删除上一次执行时产生的log信息,a追加模式,即在上一次执行时产生的log信息后面追加新的log信息,默认为a
# 日志输出级别设置为logging.DEBUG,即DEBUG以上的log都会保存,默认为warning
logging.basicConfig(filename='demo.log', filemode='w', level=logging.DEBUG,
                    format='%(asctime)s | %(levelname)8s | %(filename)s:%(lineno)s | %(message)s')

logging.debug('this is a debug log')
logging.info('this is a info log')
logging.warning('this is a warning log')
logging.error('this is a error log')
logging.critical('this is a critical log')

name = 'jack'
age = 18
logging.debug('name is %s, age is %d' % (name, age))
logging.debug('name is {}, age is {}'.format(name, age))
logging.debug(f'name is {name}, age is {age}')

打印内容:

demo.log内容:
2021-05-31 16:47:01,104 | DEBUG | log1.py:12 | this is a debug log
2021-05-31 16:47:01,104 | INFO | log1.py:13 | this is a info log
2021-05-31 16:47:01,104 | WARNING | log1.py:14 | this is a warning log
2021-05-31 16:47:01,104 | ERROR | log1.py:15 | this is a error log
2021-05-31 16:47:01,104 | CRITICAL | log1.py:16 | this is a critical log
2021-05-31 16:47:01,104 | DEBUG | log1.py:20 | name is jack, age is 18
2021-05-31 16:47:01,105 | DEBUG | log1.py:21 | name is jack, age is 18
2021-05-31 16:47:01,105 | DEBUG | log1.py:22 | name is jack, age is 18

2、生成log的高级方式

import logging

# 记录器
logger = logging.getLogger('wx.dg.mylog')
logger.setLevel(logging.INFO)

# 控制台处理器
consoleHandler = logging.StreamHandler()
consoleHandler.setLevel(logging.ERROR)
# 文件处理器
fileHandler = logging.FileHandler(filename='demo.log')
fileHandler.setLevel(logging.WARNING)

# 过滤器
filter = logging.Filter('wx.dg')

# 格式
formatter = logging.Formatter('%(asctime)s | %(levelname)8s | %(filename)s:%(lineno)s | %(message)s')

# 给处理器设置格式
consoleHandler.setFormatter(formatter)
fileHandler.setFormatter(formatter)

# 给记录器添加处理器
logger.addHandler(consoleHandler)
logger.addHandler(fileHandler)

# 给记录器添加过滤器
logger.addFilter(filter) # logger名称只有以wx.dg开头才会运行

# 打印日志
logger.debug('this is a debug log')
logger.info('this is a info log')
logger.warning('this is a warning log')
logger.error('this is a error log')
logger.critical('this is a critical log')

打印内容:
2021-05-31 16:49:54,186 | ERROR | log2.py:35 | this is a error log
2021-05-31 16:49:54,186 | CRITICAL | log2.py:36 | this is a critical log
demo.log内容:
2021-05-31 16:49:54,186 | WARNING | log2.py:34 | this is a warning log
2021-05-31 16:49:54,186 | ERROR | log2.py:35 | this is a error log
2021-05-31 16:49:54,186 | CRITICAL | log2.py:36 | this is a critical log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值