Python,2.7.6 标准日志模块 - Logging Configuration

除了使用 logging 模块中的 basicConfig 方法配置日志, Python 的 logging.config 模块中, dictConfig 和 fileConfig 方法分别支持通过字典和文件的方式配置 Logger、Handler 和 Formatter。下面用一个例子来简单地说明如何使用文件配置日志,更多详细的用法参考:https://docs.python.org/2/library/logging.config.html

logging.conf

##########################################################################################

[loggers]
keys=root,log1

[logger_root]
level=DEBUG
handlers=hand01,hand02

[logger_log1]
handlers=hand02
qualname=log1
propagate=0

##########################################################################################

[handlers]
keys=hand01,hand02

[handler_hand01]
class=FileHandler
level=DEBUG
formatter=form01
args=('myapp.log', 'a')

[handler_hand02]
class=StreamHandler
level=DEBUG
formatter=form01
args=(sys.stdout,)

##########################################################################################

[formatters]
keys=form01

[formatter_form01]
format=%(asctime)s [%(threadName)s] (%(filename)s:%(lineno)d) %(levelname)s - %(message)s
datefmt=%Y-%m-%d %H:%M:%S

logging_config_demo.py

import logging
import logging.config

logging.config.fileConfig("logging.conf")
log1 = logging.getLogger("log1")

log1.debug('This is a debug message')
log1.info('This is an info message')
log1.warning('This is a warning message')