logging模块

logging模块主要有以下几个对象

  • logger对象
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)  //默认是ERROR级别,所以INFO和DEBUG是打不出来的
  • handler对象
fh = logging.FileHandler('/tmp/test.log')
ch = logging.StreamHandler()
  • formatter对象
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  • filter对象

目前用不到,暂时忽略

几个对象之间的关系

  • 在handler对象中设置格式(由formatter对象决定)
fh.setFormatter(formatter)
ch.setFormatter(formatter)
  • 在logger对象中设置输出位置(由handler对象决定)
logger.addHandler(fh)
logger.addHandler(ch)

总结

定义formatter——决定输出格式
定义handler——决定输出位置
定义logger——最终程序调用的日志接口

将formatter绑定到handler上;再将handler绑定至logger上
这样就可以使用logger对象进行输出日志了。如:logger.info('test')

可以直接使用以下的配置文件

[loggers]
keys = root
  
[handlers]
keys = console, info, error

[formatters]
keys = baseFormatter

[logger_root]
level = NOTSET
handlers = console, info, error
propagate = 0

[handler_console]
level = NOTSET
class = StreamHandler
formatter = baseFormatter
args = (sys.stdout,)

[handler_info]
level = INFO
class = handlers.TimedRotatingFileHandler
formatter = baseFormatter
args = ('./log/info.log', 'midnight', 1)

[handler_error]
level = ERROR
class = handlers.TimedRotatingFileHandler
formatter = baseFormatter
args = ('./log/error.log', 'midnight', 1)

[formatter_baseFormatter]
format = %(asctime)s %(levelname)s %(message)s

使用方法如下

import logging
import logging.config

logging.config.fileConfig('/Users/sgrchan/Downloads/logging.ini')
logger = logging.getLogger()

logger.info('test')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文章是我大概三年前,在上家单位使用 Python 工作时结合官方文档做的整理。现在 Python 官方文档听说已...
    好吃的野菜阅读 217,496评论 14 232
  • Python logging 模块 参考 http://blog.csdn.net/zyz511919766/ar...
    ktide阅读 917评论 0 2
  • logging模块介绍: logging是python内置的标准库模块,模块提供不同的日志级别,并可以采用不同的方...
    4ffde5305e8f阅读 2,869评论 0 2
  • Logging框架主要作用是Python里面处理日志 一.logging模块的组成 loggers :提供应用程...
    YichenWong阅读 1,582评论 1 0
  • 《当我想起你》 文/白传英 总以为你已离去 没有了过去的脾气 当有一天风雨飘起 才知道你又出现在我的梦里...
    白清风阅读 139评论 0 1