Python Logging模块

作者: 四碗饭儿 | 来源:发表于2017-08-21 13:44 被阅读0次

Bug是所有程序员的亲密伙伴,而Debug的最好方式莫过于在程序运行过程中保存明晰的日志。logging模块为Python程序员提供了书写代码运行日志的利器。

事件的级别

logging模块记录的日志信息包括以下级别

levels of events
默认情形下,logging模块只打印warning级别和以上级别的日志信息。

日志基本配置

logging模块的基本设置使用basicConfig

  import logging
  logging.basicConfig(filename='example.log', level=logging.DEBUG) # 日志配置应该放在所有日志行为的首位
  # logging.basicConfig(level=getattr(logging, 'DEBUG')) # 也可以直接使用字符串来指定日志级别
  # logging.basicConfig(filemode='w') #默认情形下日志文件会在原文件基础上续写,指定文件打开模式为‘w'则刷新文件
  # logging.basicConfig(format='%(levelname)s:%(message)s') # 指定日志信息的格式
  # logging.basicConfig(format='%(asctime)s:%(message)s') # 加入时间信息
  # logging.basicConfig(format='%(asctime)s:%(message)s', datefmt='%m/%d/%Y %I:%M:%S %p') # 指定时间信息格式
  logging.warning('is when this event was logged.')
  logging.debug('Debugging !')
  logging.info('Info !')
  logging.warining('Warn !')

LogRecord

logging模块中的成员包含:loggers,handlers,filters,formatters
日志信息以LogRecord的形式在成员之间传递

Logger

每个Logger实例都有名字,名字自取可表示日志信息出处,用.组织成命名空间,通常可以使用模块名称作为Logger实例的名字

    logger = logging.getLogger(__name__)
    # logger的配置
    logger.setLevel() # 设置日志级别
    logger.addHandler() # 当前logger添加、删除Handler
    logger.removeHandler()
    logger.addFilter() # 当前logger添加、删除Filter
    # logger记录日志
    logger.debug()
    logger.info()
    logger.warning()
    logger.error()

示例

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.warn('warn message')
logger.error('error message')
logger.critical('critical message')

Reference

相关文章

网友评论

    本文标题:Python Logging模块

    本文链接:https://www.haomeiwen.com/subject/nmqcdxtx.html