# Python—logging模块使用教程

Python—logging模块使用教程

简单用法

日志等级

级别 何时使用
DEBUG 细节信息,仅当诊断问题时适用。
INFO 确认程序按预期运行
WARNING 表明有已经或即将发生的意外(例如:磁盘空间不足)。程序仍按预期进行
ERROR 由于严重的问题,程序的某些功能已经不能正常执行
CRITICAL 严重的错误,表明程序已不能继续执行

控制台输出日志

import logging
logging.warning('Watch out!')  
logging.info('I told you so') 

将日志保存到文件并且设置时间和输出格式

import logging
# 保存文件为example.log,记录等级为DEBUG,即只记录DENBUG及以上的日志
# 输出格式为 2019-19-06 18:47:06 - WARNING - And this, too
logging.basicConfig(
  filename='example.log',
  filemode='w',
  level=logging.DEBUG,
  format='%(asctime)s - %(levelname)s - %(message)s',
  datefmt='%Y-%d-%d %H:%M:%S'
)
logging.debug('This message should go to the log file')
logging.info('So shoul this')
logging.warning('And this, too')

参数解释

  • filename: 日志文件路径
  • filemode: 记录日志文件的模式,w为每次启动程序都创建一个全新的文件记录, a表示追加到文件末尾, 默认为a
  • level: 记录日志的等级
  • format: 日志输出的格式
  • datefmt: 日志输出时间的格式

使用配置文件配置日志

[loggers]
# 配置日志对象名, 默认为root
keys=root, poj

[handlers]
# 日志配置名对象名
keys=writeFileHandlers

[formatters]
# 日志输出格式对象名
keys=writeFileFormatters

[logger_root]
level=DEBUG
handlers=writeFileHandlers

[logger_poj]
level=DEBUG
handlers=writeFileHandlers
qualname=writeFileFormatters
propagate=0

[logger_leetcode]
level=DEBUG
handlers=writeFileHandlers
qualname=writeFileFormatters
propagate=0


[handler_writeFileHandlers]
# 设置writeFileHandlers对象的配置
class=FileHandler
level=DEBUG
formatter=writeFileFormatters
# 记录在文件中,以追加的形式
args=("demo.log", "a")

[formatter_writeFileFormatters]
设置writeFileHandlers对象的输出配置
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=%Y-%d-%m %H:%M:%S

使用配置文件

import logging.config
# 加载配置文件
logging.config.fileConfig('logging.conf')
# 获取日志对象名为poj的
logger = logging.getLogger("poj")
logger.debug('This message should go to the log file')
logger.info('So shoul this')
logger.warning('And this, too')

你可能感兴趣的:(# Python—logging模块使用教程)