python logging文件配置示例

python logging模块用来打印日志,类似于Java的log4j,下面列出logging模块文件配置示例代码
配置文件“logging.conf”

# logging.conf

[loggers] # 打印对象, keys指定不同对象的调用时的名称
keys=root, debug, info, error, file

[logger_root]
level=DEBUG # 指定级别, 错误、调试、信息等
handlers=debughandler, infohandler, errorhandler, filehandler

[logger_debug]
handlers=debughandler
qualname=debug
propagate=0

[logger_info]
handlers=infohandler
qualname=info
propagate=0

[logger_error]
handlers=errorhandler
qualname=error
propagate=0

[logger_file] # 同时输出到文件与控制台的日志对象
handlers=debughandler, filehandler
qualname=debug
propagate=0

###############################################
[handlers] # handler用于指定日志输出位置, 可以使控制台、文件等
keys=debughandler, infohandler, errorhandler, filehandler

[handler_debughandler]
class=StreamHandler
level=DEBUG
formatter=form01
args=(sys.stdout,) # 输出到控制台

[handler_infohandler]
class=StreamHandler
level=INFO
formatter=form01
args=(sys.stdout,)

[handler_errorhandler]
class=FileHandler
level=ERROR
formatter=form02
args=('logging.log', 'a') # 输出到文件,追加模式,每次不重写文件

[handler_filehandler]
class=FileHandler
level=DEBUG
formatter=form02 # 选择输出格式化对象
args=('logging.log', 'w') # 输出到文件,每次重写文件

###############################################
[formatters] # 指定输出格式,可以设置多种格式,每种输出位置选定不同输出格式
keys=form01, form02

[formatter_form01] # 格式: 时间 文件名 代码行数 输出级别 - 输出信息
format=%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s - %(message)s
datefmt=%Y-%m-%d %H:%M:%S

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

上述“logging.conf”文件与代码文件处于同级目录

示例代码

#! /usr/bin/env python
# -*- coding: utf-8 -*-

"""
@time: 2017/5/12 9:52
@description: TODO
"""

import logging
from logging.config import fileConfig

fileConfig('logging.conf')
logger = logging.getLogger('file') # 同时输出到文件与控制台
# logger = logging.getLogger('debug') # 输出到控制台

logger.debug('test')
上一篇:使用Python Shapefile Library创建和编辑Shapefile文件


下一篇:阿里云上all in one安装kubesphere