Python读取配置文件方式打印日志

python脚本示例:

1 import logging.config
2 # 加载logging配置文件
3 logging.config.fileConfig("logging_conf.ini")
4 # 获取名为example的记录器
5 logger = logging.getLogger("example")  # (如果创建记录器对象时传的名称,在配置文件中不存在,那么会继承root的配置)
6 # 打印错误信息到文件
7 logger.debug(‘调试信息’)
配置文件示例:
1 [loggers]   # 配置记录器实体
 2 keys=root,example  # 一个根记录器、一个名为example的记录器
 3 
 4 [handlers]  # 配置处理程序实体
 5 keys=consoleHandler,rotateFileHandler  #       
 6 
 7 [formatters]  # 配置格式实体
 8 keys=simpleFormatter
 9 
10 [formatter_simpleFormatter]  # 
11 format=[%(asctime)s](%(levelname)s)%(name)s : %(message)s
12 
13 [logger_root]  # 根记录器
14 level=DEBUG  # 必须指定一个级别和一系列处理程序
15 handlers=consoleHandler,rotateFileHandler
16 
17 [logger_example]  # 名为example的记录器
18 level=DEBUG  # 级别为debug,大于等于debug级别的log会输出
19 handlers=consoleHandler,rotateFileHandler
20 qualname=example  # 应用程序用来获取记录器的名称
21 propagate=0  # 是否会传递到更高级的logger中(是否继承父类)
22 
23 [handler_consoleHandler]  # 输出到控制台的处理程序的配置
24 class=StreamHandler
25 level=DEBUG
26 formatter=simpleFormatter
27 args=(sys.stdout,)
28 
29 [handler_rotateFileHandler]  # 输出到文件的处理程序配置
30 class=handlers.RotatingFileHandler
31 level=DEBUG
32 formatter=simpleFormatter
33 args=('Log_Error.log', 'a', 10000, 9)  

 

配置文件的格式说明:
1.大致流程就是创建记录器实例——>创建handler实例,并添加给记录器——>创建fomatter实例,并作为参数传递给handler实例,指定输出格式——>记录器实例查找handler,并调用相应的方法。
所以主要就是配置好用到的记录器、对应的处理程序、格式。
2.
[handler_rotateFileHandler]中args参数说明:

1)输出的文件名为Log_Error.log、
2)打开文件的方式,a代表添加到文件末尾、
3)文件超过10k时将已有的Log_Error.log自动改名为Log_Error.log.l,再重新创建一个Log_Error.log
4)保留文件个数为9,若上述的Log_Error.log又超过10k,会再次把Log_Error.log更名为Log_Error.log.1,
  但由于Log_Error.log.1已经存在,所以先把已有的Log_Error.log.1改成Log_Error.log.2。
  依次类推,当最后一个文件名为Log_Error.log.9时,且Log_Error.log再次超过10k,Log_Error.log.9将会被删除。

参考资料:
https://docs.python.org/2.7/library/logging.config.html#module-logging.config
https://www.jianshu.com/p/feb86c06c4f4
https://my.oschina.net/leejun2005/blog/126713
posted @ 2018-06-28 11:37  M_Y敏兒  阅读(367)  评论(0编辑  收藏  举报