• python 项目实战之logging日志打印


    官网介绍:https://docs.python.org/2/library/logging.html

    一、 基础使用

    1.1 logging使用场景

    日志是什么?这个不用多解释。百分之九十的程序都需要提供日志功能。Python内置的logging模块,为我们提供了现成的高效好用的日志解决方案。但是,不是所有的场景都需要使用logging模块,下面是Python官方推荐的使用方法:

    任务场景最佳工具
    普通情况下,在控制台显示输出 print()
    报告正常程序操作过程中发生的事件 logging.info()(或者更详细的logging.debug())
    发出有关特定事件的警告 warnings.warn()或者logging.warning()
    报告错误 弹出异常
    在不引发异常的情况下报告错误 logging.error()logging.exception()或者logging.critical()

    logging模块定义了下表所示的日志级别,按事件严重程度由低到高排列(注意是全部大写!因为它们是常量。):

    级别级别数值使用时机
    DEBUG 10 详细信息,常用于调试。
    INFO 20 程序正常运行过程中产生的一些信息。
    WARNING 30 警告用户,虽然程序还在正常工作,但有可能发生错误。
    ERROR 40 由于更严重的问题,程序已不能执行一些功能了。
    CRITICAL 50 严重错误,程序已不能继续运行。

    默认级别是WARNING,表示只有WARING和比WARNING更严重的事件才会被记录到日志内,低级别的信息会被忽略。因此,默认情况下,DEBUG和INFO会被忽略,WARING、ERROR和CRITICAL会被记录。

    有多种方法用来处理被跟踪的事件。最简单的方法就是把它们打印到终端控制台上。或者将它们写入一个磁盘文件内。

    1.2 简单范例

    在什么都不配置和设定的情况下,logging会简单地将日志打印在显示器上,如下例所示:

    import logging
    logging.warning('Watch out!')  # 消息会被打印到控制台上
    logging.info('I told you so')  # 这行不会被打印,因为级别低于默认级别
    

    如果,将上面的代码放在一个脚本里并运行,结果是:

    WARNING:root:Watch out!

    1.3 高级使用
     1 import logging
     2 
     3 #创建logger记录器
     4 logging.basicConfig(filename='example.log',level=logging.DEBUG)
     5 logger = logging.getLogger('simple_example')
     6 logger.setLevel(logging.DEBUG)
     7 
     8 #创建一个控制台处理器,并将日志级别设置为debug
     9 
    10 ch = logging.StreamHandler()
    11 
    12 ch.setLevel(logging.DEBUG)
    13 
    14 #创建formatter格式化器
    15 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    16 
    17 #将formatter 添加到ch处理器
    18 ch.setFormatter(formatter)
    19 
    20 #将ch添加到logger
    21 logger.addHandler(ch)
    22 
    23 #然后就可以开始使用了
    24 # logger.debug('debug message')
    25 #logger.info('info message')
    26 # logger.warning('warn message')
    27 # logger.error('error message')
    28 # logger.critical('critical message')
    29 
    30 def Logss():
    31     #要打印的信息
    32     a = "3"
    33     logger.info(a)
    34 
    35 Logss()

     
  • 相关阅读:
     selenium webdriver test
    V8 初次接触(Qt5) 1+1=2 博客频道 CSDN.NET
    C++11 FAQ中文版
    做技术的,因为年龄和颈椎问题,想逐渐脱离码农状态,大家对3035岁职业规划有什么好的建议? 知乎
    一些idea
    如何来区分是我写的还是我转载的,
    firecurl
    python为什么叫好不叫座
    QTextCodec中的setCodecForTr等终于消失了 (Qt5) 1+1=2 博客频道 CSDN.NET
    Charles Web Debugging Proxy • HTTP Monitor / HTTP Proxy / HTTPS & SSL Proxy / Reverse Proxy
  • 原文地址:https://www.cnblogs.com/zoulixiang/p/11713181.html
Copyright © 2020-2023  润新知