不要直接实例化记录器,可以通过执行 logger = getLogger(__name__)
创建一个日志记录器。
日志记录器的记录方法包括:
默认的级别是 WARNING
,意味着只会追踪该级别及以上的事件。
# 使用basicConfig方法来设置日志文件、日志格式、文件模式、编码方式和日志等级
logging.basicConfig(filename='example.log', format='%(asctime)s %(levelname)s:%(message)s',
filemode='w', encoding='utf-8', level=logging.DEBUG)
# 在format中,asctime表示日期和时间,levelname(严重性)、,message(事件描述,包含可变的数据)
# 还可以自己设置时间的格式
logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
日志库采用模块化方法,并提供几类组件:
根记录器的名称在输出中打印为 'root' 。
记录器常见配置方法:
Logger.setLevel() 指定记录器将处理的最低严重性日志消息。
Logger.addHandler() 和 Logger.removeHandler() 从记录器对象中添加和删除处理器对象。
Logger.addFilter() 和 Logger.removeFilter() 可以添加或移除记录器对象中的过滤器。
处理器配置方法:
以下示例使用 Python 代码配置一个非常简单的记录器、一个控制台处理器和一个简单的格式器:
import logging
# create logger
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)
# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
# 'application' code
logger.debug('debug message')
logger.info('info message')
logger.warning('warn message')
logger.error('error message')
logger.critical('critical message')
常见formatter占位符如下
自定义时间格式方法:去掉了毫秒部分
# 创建一个formatter,并设置自定义的时间格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s', datefmt="%Y-%m-%d %H:%M:%S")