python的logging.config使用详解

来源:互联网 发布:大二层和三层网络区别 编辑:程序博客网 时间:2024/06/05 02:34

    python的log模块是日常使用最多的模块之一,  简单的使用这里就不多说了,见(http://blog.csdn.net/jianhong1990/article/details/17475717)。

    实际运用中,我们可能需要将日志的配置信息独立出来,这时候我们就需要用到logging的另一个功能:

test.py

# test.pyimport loggingimport logging.configlogging.config.fileConfig("logging.conf")#create loggerlogger = logging.getLogger("example")#"application" codelogger.debug("debug message")logger.info("info message")logger.warn("warn message")logger.error("error message")logger.critical("critical message")logHello = logging.getLogger("hello")logHello.info("Hello world!")


logging.conf配置文件:

[loggers]keys=root,example[handlers]keys=consoleHandler,rotateFileHandler,rootFileHandler[formatters]keys=simpleFormatter[formatter_simpleFormatter]format=[%(asctime)s](%(levelname)s)%(name)s : %(message)s[logger_root]level=DEBUGhandlers=consoleHandler,rootFileHandler[logger_example]level=DEBUGhandlers=consoleHandler,rotateFileHandler#在app中应用这个log的名字qualname=example#是否会传递到更高级的logger中,类似于冒泡,会传递到父logger中propagate=0[handler_consoleHandler]class=StreamHandlerlevel=DEBUGformatter=simpleFormatterargs=(sys.stdout,)[handler_rotateFileHandler]class=handlers.RotatingFileHandlerlevel=DEBUGformatter=simpleFormatterargs=('logs/cdnlog/test.log', 'a', 200000, 9)[handler_rootFileHandler]class=handlers.RotatingFileHandlerlevel=DEBUGformatter=simpleFormatterargs=('logs/cdnlog/root.log', 'a', 200000, 9)