[Python] iupdatable包:日志模块使用介绍

Posted iupdatable

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python] iupdatable包:日志模块使用介绍相关的知识,希望对你有一定的参考价值。

 

一、说明

日志模块是对 logging 模块的单例封装

特点:

  • 可同时向控制台和文件输出日志,并可选择关闭其中一种方式的输出;
  • 集成colorlog,实现根据日志等级不同,控制台输出日志颜色不同;
  • 灵活切换是否输出调试内容

 

二、简单示例

安装 iupdatable 包

pip install --upgrade iupdatable

使用实例:

 1 from iupdatable.logging.Logger import Logger
 2 from iupdatable.logging.LogLevel import LogLevel
 3 
 4 
 5 def test_logging():
 6     # 日志等级:
 7     # CRITICAL  同:FATEL,下同
 8     # ERROR
 9     # WARNING
10     # INFO
11     # DEBUG
12     # NOTSET    按照 WARNING 级别输出
13 
14     # 设置为 DEBUG,输出所有信息
15     # 设置为 WARNING, INFO、DEBUG 级别的日志就不会输出
16     Logger.get_instance().config(log_level=LogLevel.DEBUG)
17 
18     Logger.get_instance().debug(debug message1)
19     Logger.get_instance().info(info message1)
20     Logger.get_instance().warning(warning message1)
21     Logger.get_instance().error(error message1)
22     Logger.get_instance().debug(debug message1, is_with_debug_info=True)  # 要想输出具体的调试信息
23     Logger.get_instance().fatal(fatal message1)
24     Logger.get_instance().critical(critical message1)  # fatal = critical
25 
26     # 也可以输出变量
27     abc = [1, 2, 4]
28     Logger.get_instance().info(abc)
29 
30 
31 test_logging()

 

控制台输出:

技术图片

上面的内容也会同时输出到 all.log 的日志文件中,此外 all.log 的日志会在新一天开始对日志按照天进行归档。

 

三、参数说明

1. Logger.get_instance().config(...)

函数用于设置日志的各项配置

建议在日志使用前调用该函数。不调用该函数,直接使用日志的话,后台会按照默认参数调用该函数。

日志的使用过程中也可以重新调用该函数,对日志进行重新设置。

全部参数说明如下:

log_level:           日志输出等级,参考:LogLevel 的值,默认为 DEBUG 等级
log_file_full_path:  日志输出的文件名的完整路径,默认:all.log
date_format:         每天日志前日期时间的格式,默认: %Y-%m-%d %H:%M:%S
is_with_datetime:    是否在每条日志前添加日期时间,默认:True
is_with_level:       是否在每天日志前添加日志等级,默认:True
is_output_file:      是否将日志输出到文件,默认:True
is_output_console:   是否将日志输出到控制台,默认:True
is_colored:          是否将控制台的输出设为彩色,默认:True

 

 

2. is_with_debug_info

这个一个可选参数,所有的日志函数均有该项,表示是否在输出的日志中添加调试信息,包括:文件的具体位置,函数名,代码的行号,默认:False,即:默认不添加

 

使用下面代码举例:

 1 from iupdatable.logging.Logger import Logger
 2 from iupdatable.logging.LogLevel import LogLevel
 3 
 4 
 5 def logging_debug_info():
 6     Logger.get_instance().debug(message,   is_with_debug_info=True)
 7     Logger.get_instance().info(message,    is_with_debug_info=True)
 8     Logger.get_instance().warning(message,  is_with_debug_info=True)
 9     Logger.get_instance().error(message,     is_with_debug_info=True)
10     Logger.get_instance().fatal(message,     is_with_debug_info=True)
11     Logger.get_instance().critical(message,  is_with_debug_info=True)
12 
13 
14 logging_debug_info()

 

输出内容就会变成:

 技术图片

主要用途是在try except中使用,方便在日志中定位出错信息:

    try:
        print(to do)
    except Exception as e:
        Logger.error(repr(e), is_with_debug_info=True)

 

以上是关于[Python] iupdatable包:日志模块使用介绍的主要内容,如果未能解决你的问题,请参考以下文章

[Python] iupdatable包:File模块使用介绍

[Python] iupdatable包:获取电脑主板信息(csproduct)

包和日志模块的使用

包,日志字典

登录python的最佳实践

使用python的unittest模块进行测试,如何将测试执行日志保存下来?