python日志组件logging模块(二)

来源:互联网 发布:淘宝账号解封成功案例 编辑:程序博客网 时间:2024/06/18 04:54

在上一篇中介绍了logging日志的输出handler。使用的是直接构建logging输出日志的方式,实际开发中如果要想改变日志的输出方式还需要修改代码。本篇将使用配置文件的方式进行处理。主要使用的新的类是:logging.config,需要在文件的开头import进来。

一、logging.config介绍

Python的logging模块接口仿log4开发,概念上一致,使用方便。利用logging.config.fileConfig(),可以将日志的配置用文件来描述,简化日志初始化。

1、logging初始化文件配置接口

配置接口有两类,分别是:

logging.config.dictConfig(config)。配置字典模式

logging.config.fileConfig(fname, defaults=None, disable_existing_loggers=True) 配置文件模式

2、使用方式说明

字典配置方式:

相对于文件配置方式更加灵活,可以通过文件、程序内部构造以及接收socket的序列化消息,转换成字典配置信息方便使用。具体的使用方式如下:

with open('logging.yml', 'r') as f_conf:

dict_conf = yaml.load(f_conf)

logging.config.dictConfig(dict_conf)

logger = logging.getLogger('simpleExample')

logger.debug('debug message’)

文件配置方式

logging.config.fileConfig('logconfig.ini')

logger = logging.getLogger('product’)

logger.debug(msg)

3、配置文件组织方式

logging的配置文件,必须包含以下端:[loggers]、[handlers]、[formatters]

[loggers]:必须指定level和handlers这两个option,level的可取值为DEBUG、INFO、WARNING、ERROR、CRITICAL、NOTSET,其中NOTSET表示所有级别的日志消息都要记录。handlers中的定义必须都已经在[handlers]段中进行了配置。

[handlers]:必须指定class和args这两个option,level和formatter为可选option;class表示用于创建handler的类名,args表示传递给class所指定的handler类初始化方法参数;formatter定义了输出日志的格式的段名称,名称必须出现在formatters这个section中

[formatters]:定义了输出日志的格式

下面请看事例运行结果,获取完整脚本请搜索公众号:开发者VIP,点击关注后,发送log获取完整运行代码:

|DEBUG|43658|2017-10-27 15:27:06:27S|798|mylog.py|L_DEBUG|mylog|1000000

|DEBUG|43658|2017-10-27 15:27:06:27S|798|mylog.py|L_DEBUG|mylog|1000001

|DEBUG|43658|2017-10-27 15:27:06:27S|798|mylog.py|L_DEBUG|mylog|1000002

|DEBUG|43658|2017-10-27 15:27:06:27S|798|mylog.py|L_DEBUG|mylog|1000003