Python——logging模块学习

来源:互联网 发布:js 控制重新打开页面 编辑:程序博客网 时间:2024/06/05 00:09

一、logging.basicConfig设定日志输出格式及路径:输出到文件

  • 日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET

  • 默认情况下,logging将日志打印到屏幕,日志级别为WARNING

  • 通过logging.basicConfig函数对日志的输出格式及方式做相关设定

  • logging.basicConfig([**kwargs]) 函数用来配置root logger, 为root logger创建一个StreamHandler,设置默认的格式


import logging# 日志级别列表,默认为logging.WARNINGLEVELS = (logging.NOTSET, logging.DEBUG, logging.INFO,          logging.WARNING, logging.ERROR, logging.CRITICAL)LOG_FORMAT = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)-8s %(message)s'  # 输出格式                  DATE_FORMAT='%Y-%m-%d %H:%M:%S'  # 日期格式 FILENAME = "mylog.log"  # 日志文件logging.basicConfig(level=LEVELS[1], format=LOG_FORMAT, datefmt=DATE_FORMAT,                    filename=FILENAME, filemode='w')logging.debug('This is a {0} message'.format("debug"))logging.info('This is an {0} message'.format("info"))logging.warning('This is a warning message')logging.error('This is an error message')logging.critical('This is a critical error message')
  • format 参数说明

    %(levelname)s: 日志级别名称
    %(filename)s: 当前执行程序名
    %(lineno)d: 当前行号
    %(asctime)s: 日志时间
    %(message)s:日志信息


二、将日志输出到控制台, 同时写入日志文件

import logging# 创建一个loggerlogger = logging.getLogger()logger.setLevel(logging.DEBUG)# 创建FileHandler,用于写入日志文件fh = logging.FileHandler('test.log')fh.setLevel(logging.DEBUG)# 创建StreamHandler,用于输出到控制台ch = logging.StreamHandler()ch.setLevel(logging.DEBUG)# 定义handler的输出格式LOG_FORMAT = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)-8s %(message)s'formatter = logging.Formatter(LOG_FORMAT)fh.setFormatter(formatter)ch.setFormatter(formatter)# 给logger添加handlerlogger.addHandler(fh)logger.addHandler(ch)# 记录一条日志logger.info('test')

  • logging.getLogger([name])

    返回一个logger实例,如果没有指定name,返回root logger。

  • logger.setLevel(lvl)

    设置logger的level

  • logging.Formatter()对象

    设置日志显示格式,默认的时间格式为%Y-%m-%d %H:%M:%S。

  • logger.addHandler(hdlr)

    通过handler对象可以把日志内容写到不同的地方


参考

[1] https://docs.python.org/2/library/logging.html
[2] http://www.jb51.net/article/42626.htm
[3] http://www.cnblogs.com/dkblog/archive/2011/08/26/2155018.html

0 0
原创粉丝点击