一、Python常用模块logging——日志输出功能
Python有一个称之为logging的标准库,可对Python程序进行日志输出,并输出至控制台或者存储于文件中。日志输出可分为不同的等级(debug、info、warning、error、critical),并可对输出进行格式化。logging模块是Python中非常常用的一个模块,几乎所有的应用程序都需要记录日志。下面介绍一下logging模块常用的功能和代码示例。
二、使用举例
(1)基本使用示例
下面是一个基本的logger使用示例代码:
import logging
def test_log():
# 日志文件存放路径
LOG_FILE_PATH = 'test.log'
# getLogger获取日志logger
logger = logging.getLogger()
# 设置日志记录等级
logger.setLevel(logging.INFO)
# 创建输出格式:时间、日志等级、日志内容
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
# 设置控制台输出
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
# 设置文件输出
file_handler = logging.FileHandler(filename=LOG_FILE_PATH, mode='a')
file_handler.setFormatter(formatter)
# 将设置好的输出处理器添加到logger
logger.addHandler(console_handler)
logger.addHandler(file_handler)
# 进行日志输出
logger.info('Hello, world!')
test_log()
代码说明:
- getLogger获取logger对象;
- 设置日志记录等级为INFO,即输出INFO、WARNNING、ERROR、CRITICAL等级的日志;
- 设定日志输出格式,并设置表现形式(这里为时间、日志等级、日志内容);
- 设置控制台输出和文件输出;
- 利用addHandler把已经设置好输出格式的控制台输出和文件输出,加入到logger中;
- 最后利用logger.info、logger.warning、logger.error、logger.critical等方法输出日志。
(2)记录不同等级的日志
下面介绍如何记录不同等级的日志。
# 编写日志记录器
logger = logging.getLogger('daily_logger')
logger.setLevel(logging.DEBUG)
# 创建handler(记录日志等级 >= DEBUG)
fh = logging.FileHandler('debug.log')
fh.setLevel(logging.DEBUG)
# 创建handler(记录日志等级 >= INFO)
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
# 创建formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 添加formatter到handler
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 添加handler到logger
logger.addHandler(fh)
logger.addHandler(ch)
# 几种日志输出方式
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
代码说明:
- getLogger获取logger对象;
- 设置日志记录等级为DEBUG,即输出DEBUG、INFO、WARNNING、ERROR、CRITICAL等级的日志;
- 创建记录DEBUG级别日志的文件输出handler;
- 创建记录INFO级别日志的控制台输出handler;
- 创建日志formatter;
- 设置handler的formatter;
- 利用addHandler把已经设置好输出格式的控制台输出和文件输出,加入到logger中;
- 最后利用logger.debug、logger.info、logger.warning、logger.error、logger.critical等方法输出日志。其中output输出方式可以在handler中设置。
三、总结
以上是Python中日志输出功能的介绍和示例,logging模块提供了丰富的日志输出功能,灵活的应用logging模块可以实现简单的日志输出和复杂的日志分析与统计等功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python常用模块logging——日志输出功能(示例代码) - Python技术站