• 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
  • 相关阅读:
    <Redis开发与运维> 阅读笔记
    请求行,请求头,请求体详解
    char 与 varchar 的区别
    python字符串的常用方法。
    快速排序的代码及原理
    C#之Dictionary源码
    C#中构造函数
    U3D——单例模式的用法
    U3D学习——设置VS2019作为开发工具
    U3D学习——脚本运行周期
  • 原文地址:https://www.cnblogs.com/minerrr/p/9224982.html
Copyright © 2020-2023  润新知