当前位置: 首页 > 工具软件 > log > 使用案例 >

debug——生成log

庞鸿骞
2023-12-01

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

 类似资料: