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