zoukankan      html  css  js  c++  java
  • Python:Logging日志处理

    程序中,需要添加日志来记录大量信息。

    import logging
    
    # 第一步:创建logger
    self.logger = logging.getLogger()
    self.logger.setLevel(logging.NOTSET)  # 设置logger级别
    
    # 第二步:创建一个handler,用于写入日志文件
    log_file_path = Log.get_log_file_path(self)  # 获取日志文件路径
    self.fileHandler = logging.FileHandler(log_file_path)  # 用于写入日志文件
    
    # 第三步:定义输出格式
    formatter = logging.Formatter('>>> %(asctime)s - %(filename)s [line:%(lineno)d] - %(levelname)s: %(message)s')
    
    # 第四步:定义handler的输出格式formatter
    self.fileHandler.setFormatter(formatter)
    
    # 第五步:给logger添加handler
    self.logger.addHandler(self.fileHandler)
    
    # 过滤日志
    self.logger.addFilter(self.fileHandler)

    默认配置

    默认情况下,logging模块将日志打印到了标准输出中,并且只输出WARNING及以上级别的日志。

    # 级别排序:CRITICAL > ERROR > WARNING > INFO > DEBUG
    
    logging.debug('DEBUG : 打印全部的日志,详细的信息,通常只出现在诊断问题上')
    logging.info('INFO : 打印info,warning,error,critical级别的日志,确认一切按预期运行')
    logging.warning('WARNING : 打印warning,error,critical级别的日志,一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”),这个软件还能按预期工作')
    logging.error('ERROR : 打印error,critical级别的日志,更严重的问题,软件没能执行一些功能')
    logging.critical('CRITICAL : 打印critical级别,一个严重的错误,这表明程序本身可能无法继续运行')

    配置日志级别,格式,输出位置等

    通过logging.basicConfig()函数,可改变logging模块默认配置,参数如下:

    logging.basicConfig(level=logging.NOTSET,  # 设置rootlogger的日志级别
                        filename='error.log',  # 指定文件名创建FiledHandler,将日志存储在指定的文件中
                        filemode='a',  # 模式,有w和a,w就是写模式,每次都会重新写日志,覆盖之前的日志  #a是追加模式,默认如果不写的话,就是追加模式
                        format=">>> %(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s",  # 日志输出模式
                        datefmt="%a, %d %b %Y %H:%M:%S"  # 设置日期格式
                        )

    format参数中可能用到的格式化串:
    %(name)s             Logger的名字
    %(levelno)s          数字形式的日志级别
    %(levelname)s     文本形式的日志级别
    %(pathname)s     调用日志输出函数的模块的完整路径名,可能没有
    %(filename)s        调用日志输出函数的模块的文件名
    %(module)s          调用日志输出函数的模块名
    %(funcName)s     调用日志输出函数的函数名
    %(lineno)d           调用日志输出函数的语句所在的代码行
    %(created)f          当前时间,用UNIX标准的表示时间的浮 点数表示
    %(relativeCreated)d    输出日志信息时的,自Logger创建以 来的毫秒数
    %(asctime)s                字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
    %(thread)d                 线程ID。可能没有
    %(threadName)s        线程名。可能没有
    %(process)d              进程ID。可能没有
    %(message)s            用户输出的消息

    类 Logger, Handler, Formatter, Filter的概念

    logging库提供了多个组件:Logger、Handler、Filter、Formatter

    Logger:  对象提供应用程序可直接使用的接口

    Handler:  发送日志到适当的目的地

    Filter:   提供了过滤日志信息的方法

    Formatter: 指定日志显示格式  

    多模块使用logging

    。。。

  • 相关阅读:
    CSS3—— 2D转换 3D转换 过渡 动画
    CSS3——边框 圆角 背景 渐变 文本效果
    CSS3——表单 计数器 网页布局 应用实例
    CSS3——提示工具 图片廓 图像透明 图像拼接技术 媒体类型 属性选择器
    CSS3——对齐 组合选择符 伪类 伪元素 导航栏 下拉菜单
    CSS3——分组和嵌套 尺寸 display显示 position定位 overflow float浮动
    CSS3——盒子模型 border(边框) 轮廓(outline)属性 margin外边距 padding填充
    Eclipse连接数据库报错Local variable passwd defined in an enclosing scope must be final or effectively final
    数据库——单表查询
    数据库——添加,修改,删除
  • 原文地址:https://www.cnblogs.com/rechin/p/9530699.html
Copyright © 2011-2022 走看看