在config 包下新建一个名为Logger.conf 的文件,用于配置日志基本信息,以后工程可直接使用,具体内容如下:
#logger.conf
#########################################
[loggers] #固定写法
keys = root,example01,example02 #创建三个app名,root是父类,必需存在的
[logger_root]
level =DEBUG #设置日志级别
handlers = hander01,hander02 #设置指定过滤器,这个名字待会儿 我们会以固定格式"handler_(value)"创建
[logger_example01]
handlers = hander01,hander02
qualname =example01 #除了root 以外,定义的app名必须要设置这个属性,用于定义打印输出时候的app名
propagate =0
[logger_example02]
handlers =hander01,hander03
qualname =example02
propagate=0
########################################
[handlers]
keys=hander01,hander02,hander03 #定义过滤器名称,
[handler_hander01]
class =StreamHandler #指定过滤器组件,以流处理器的方式输出到控制台
level =INFO
formatter =form01 #定义日志打印格式
args=(sys.stderr,) #错误输出
[handler_hander02]
class=FileHandler #指定过滤器组件,以文件方式输出
level=DEBUG
formatter =form01
args=('log\\DataDriverFrameWork.log','a') #创建文件名字,以什么方式打开(可修改)
[handler_hander03]
class=handlers.RotatingFileHandler #日志滚动形式输出到文件
level=INFO
formatter =form01
args=('log\\DataDriverFrameWork.log','a',10*1024*1024) #追加的形式,最大保存10MB
####################################
[formatters]
keys=form01 #定义日志输出格式
[formatter_form01]
#年-月-日 时-分-秒,文件名,行号,级别名,消息信息
format = %(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
datefmt=%Y-%m-%d %H:%M:%S #日期输出格式
这是用配置文件的方式把日志输出到指定文件,在util 包下新建一个get_log.py 文件,用于初始化日志对象,具体内容如下:
#encoding = utf-8
import logging
import logging.config
from config.VarConfig import parentDirPath
logging.config.fileConfig(parentDirPath + '\config\Logger.conf') #读取配置文件地址
#选择一个日志格式
logger = logging.getLogger('example02') #或者example01
def debug(message): #定义DEBUG 级别日志打印方法
logger.debug(message)
def info(message): #定义INFO 级别日志打印方法
logger.info(message)
def error(message): #定义ERROR 级别日志打印方法
logger.error(message)
if __name__ =='__main__':
debug('i am debug')
info(' i am info')
error('i am error')