python的log函数详解

  • Post category:Python

当我们编写代码时,经常需要了解程序的运行情况,帮助我们调试和优化程序,这时我们可以通过日志记录来实现。在Python中,使用log模块可以很方便地进行日志记录。

log函数

log模块中,使用basicConfig()函数进行日志的基本配置,可以指定日志级别、输出格式等参数,常用的级别有:DEBUG、INFO、WARNING、ERROR和CRITICAL。

import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
  • level:指定日志的级别,低于该级别的日志不会被输出,默认为logging.WARNING级别。
  • format:指定日志输出的格式,可以指定时间、输出级别、日志内容等信息。

实例:

import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')

logging.debug('This is a debug message.')
logging.info('This is an info message.')
logging.warning('This is a warning message.')
logging.error('This is an error message.')
logging.critical('This is a critical message.')

输出结果:

2021-08-17 09:48:47,135 - DEBUG - This is a debug message.
2021-08-17 09:48:47,135 - INFO - This is an info message.
2021-08-17 09:48:47,135 - WARNING - This is a warning message.
2021-08-17 09:48:47,135 - ERROR - This is an error message.
2021-08-17 09:48:47,135 - CRITICAL - This is a critical message.

log文件记录

除了在控制台输出日志外,我们还可以将日志记录到文件中。在basicConfig()函数中增加参数filename来指定日志文件地址,并且修改format参数以使日志格式更友好。

import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s', filename='log.txt')

logging.debug('This is a debug message.')
logging.info('This is an info message.')
logging.warning('This is a warning message.')
logging.error('This is an error message.')
logging.critical('This is a critical message.')

输出结果在log.txt文件中:

2021-08-17 09:52:28,319 - DEBUG - This is a debug message.
2021-08-17 09:52:28,319 - INFO - This is an info message.
2021-08-17 09:52:28,319 - WARNING - This is a warning message.
2021-08-17 09:52:28,319 - ERROR - This is an error message.
2021-08-17 09:52:28,319 - CRITICAL - This is a critical message.

这就是Python中进行日志处理的一些基础知识,通过日志记录可以更方便的进行程序调试和优化。而在具体实践中,还需要根据具体的业务场景进行日志记录方式的选择和解读。