python 日志模块使用
Posted 灬鬼谷灬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 日志模块使用相关的知识,希望对你有一定的参考价值。
Table of Contents
1 logging介绍
1.1 logger
- 提供日志接口,供应用代码使用。logger最常用的操作有两类:配置和发送日志消息。通过logging.getLogger(name)来获得对象
1.2 handler
- 将日志记录以一定的格式发送到合适的目的地。一个logger对象可以通过addHandler可以添加多个handler,还可以设置不同的日志级别
1.3 filter
- 提供一种优雅的方式决定一个日志记录是否发送到handler
1.4 formatter
- 提供日志记录具体的输出格式
2 logging 配置
2.1 通过python代码配置
#!/usr/bin/python
# -*- coding:utf-8 -*-
""" logger 日志 """
import logging
import logging.handlers
handler = logging.handlers.RotatingFileHandler("mylog.log");
formater = logging.Formatter("%(asctime)s - %(name)s - %(filename)s:%(lineno)d - %(message)s")
handler.setFormatter(formater)
logger = logging.getLogger('main')
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
logger.debug("the logger out")
2.2 通过配置文件配置
- 编写logging.conf
[loggers] keys=root,main [handlers] keys=consoleHandler,fileHandler [formatters] keys=mainFormatter [logger_root] level=DEBUG handlers=consoleHandler [logger_main] level=DEBUG handlers=fileHandler qualname=main [handler_consoleHandler] class=StreamHandler level=DEBUG formatter=mainFormatter args=(sys.stdout,) [handler_fileHandler] class=logging.handlers.RotatingFileHandler level=DEBUG formatter=mainFormatter args=("mylog.log",) [formatter_mainFormatter] format="%(asctime)s - %(name)s - %(filename)s:%(lineno)d - %(message)s" datefmt=
- 编写python程序导入配置
#!/usr/bin/python # -*- coding:utf-8 -*- """ logging config 方式""" import logging import logging.config logging.config.fileConfig("logging.conf") root_logger = logging.getLogger('root') logger = logging.getLogger('main') root_logger.debug("root logging") logger.debug("main logging")
详情参考http://python.usyiyi.cn/python_278/library/logging.html
以上是关于python 日志模块使用的主要内容,如果未能解决你的问题,请参考以下文章