python内置模块logging常用代码
一、基础用法
import logging
logging.basicConfig(
level=logging.INFO, #日志等级:DEBUG、INFO、WARNNING、ERROR、CRITICAL,此处写为INFO代表info往上的错误级别(warning、error、critical)都会被记录到日志中
filename='./log.txt', #日志写入文件名称为log.txt
filemode='w', #写入方式为‘w':覆盖重写 ;’a':续写
format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
#日志时间 执行文件名 line: 报错行号 日志等级名 日志信息
datefmt='%Y-%m-%d %H:%M:%S' #日志时间写入格式
)
代码中写入日志:
logging.error('配置文件不存在')
logging.warnning('警告信息:代码执行待调整')
写入日志的信息要尽量准确表达问题
小项目基础用法足够
二、高级用法
(1)创建日志对象:
logger = logging.getLogger("my_logger") # 获取一个 Logger 对象
logger.setLevel(logging.DEBUG) # 设置日志级别
(2)创建handler (控制台和文件):
# 控制台 Handler
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.WARNING) # 控制台只输出 WARNING 及以上
# 文件 Handler
file_handler = logging.FileHandler("app.log", mode='a') # 日志文件app.log 模式为a:续写模式
file_handler.setLevel(logging.DEBUG) # 文件记录 DEBUG 及以上
(3)设置formatter (日志格式)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s',datefmt='%Y-%m-%d %H:%M:%S')
#日志时间 执行文件名 日志等级名 日志信息 时间写入模式
console_handler.setFormatter(formatter) # 应用格式到 控制台Handler
file_handler.setFormatter(formatter) # 应用格式到 文件Handler
(4)将handler添加到logger对象
logger.addHandler(console_handler)
logger.addHandler(file_handler)
(5)使用logger记录日志
logger.debug("调试信息")
logger.info("普通信息")
logger.warning("警告信息")
大项目使用logger+handler+formatter模式灵活记录日志