Python中的logging

Logging From Python

Preface *Jack Lee*

logging是Python提供用于记录日志的模块.

其中有6种日志等级.

  • NOTSET: 00 不设置.
  • DEBUG: 10 详细信息.
  • INFO: 20 正常工作信息.
  • WARNING: 30 警告信息.
  • ERROR: 40 错误信息.
  • CRITICAL: 50 致命信息.

Getting Start

  • 设置低等级, 只会显示当前等级和高于当前等级的信息.
  • 要使用日志模块
    • 创建日志对象并设定等级
    • 创建处理对象并设定等级
    • 定义日志格式
    • 将处理对象添加到日志对象中
import logging


# 创建log对象, 设置等级, 指定日志记录输出文件.
logger = logging.getLogger('test_log.txt')
logger.setLevel(logging.DEBUG)

# 创建控制台处理对象.
sh = logging.StreamHandler()
sh.setLevel(logging.ERROR)

# 创建log文件处理对象.
fh = logging.FileHandler('test_log.txt')
fh.setLevel(logging.DEBUG)

# 定义日志格式.
fromatter = logging.Formatter('TIME:%(asctime)s LOG:%(levelname)s INFO:%(message)s')
sh.setFormatter(fromatter)
fh.setFormatter(fromatter)

# 将处理对象扔给log对象.
logger.addHandler(sh)
logger.addHandler(fh)


if __name__ == '__main__':
    logger.debug('This is DEBUG')
    logger.error('ERROR')
    logger.info('info')
    logger.critical('critical')
  • Formatter日志格式
    • %(name)s: logger名字
    • %(levelno)s: 日志等级的数值形式
    • %(levelname)s: 日志等级的文本形式
    • %(filename)s: 调用日志输出的文件名
    • %(module)s: 调用日志输出的模块名
    • %(asctime)s: 当前时间的时间字符串
    • %(message)s: 用户输出的信息
    • %(funcName)s: 调用日志输出的函数名
    • %(lineno)d: 调用日志输出函数的语句所在的代码行
    • %(created)f: 当前的时间, UNIX标准的浮点型表示.
    • %(thread)d: 线程ID.
    • %(threadName)s: 线程名.
    • %(process)d: 进程ID.
    • %(processName)s: 进程名.

猜你喜欢

转载自blog.csdn.net/One_of_them/article/details/84672738