[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)

原文地址:https://www.cnblogs.com/IUpdatable/p/12497624.html

时间: 2024-11-10 18:16:06

[Python] iupdatable包:日志模块使用介绍的相关文章

python的logging日志模块(一)

最近修改了项目里的logging相关功能,用到了Python标准库里的logging模块,在此做一些记录.主要是从官方文档和stackoverflow上查询到的一些内容. 官方文档 技术博客 基本用法 下面的代码展示了logging最基本的用法. # -*- coding: utf-8 -*- import logging import sys # 获取logger实例,如果参数为空则返回root logger logger = logging.getLogger("AppName")

python管理包(模块和包的应用)

一.python 管理包(模块和包的应用) 1.1 python管理包 1.1.1 distutils distutils是Python标准库的一部分,这个库的目的是为开发者提供一种方便的打包方式,同时为使用者提供方便的安装方式. 在distutils中描述扩展模块较纯python模块要复杂一些,其中描述扩展模块可以由setup函数的关键字参数ext_modules实现. 1.1.2 setuptools setuptools是对distutils的增强,尤其是引入了包依赖管理. setup脚本

python原生的日志模块

Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍 1. 日志级别 日志一共分成5个等级,从低到高分别是: DEBUG INFO WARNING ERROR CRITICAL 说明: DEBUG:详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期运行 WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如.磁盘空间低").这个软件还能按预期工作. ERROR:更严重的问题,软件没能执行一些功能 CRITICAL:

python之写日志模块

python自带的日志模块logging比较难用,这里介绍一个好用的日志模块nnlog,直接pip install nnlog即可 import nnlog log = nnlog.Logger(file_name='my.log',level='debug',when='D',backCount=5,interval=1) #file_name是日志文件名,可以是不存在的文件,会主动帮助创建 #level是日志级别,如果不传的话默认是debug级别 #when是日志文件多久生成一个,默认是按天

python中的日志模块logging

1.日志级别5个: 警告Warning 一般信息Info  调试 Debug  错误Error 致命Critical 2.禁用日志方法 logging.disable(logging.DEBUG) 3.将日志写入文件 logging.basicConfig(filename='log.txt', level=logging.CRITICAL, format=' %(asctime)s - %(levelname)s - %(message)s') 4.格式化输出日志信息 注意事项: 1.日志输出

python 3 包与模块

包与模块 一 .模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到python解释器的内置模块 2 为何要使用模块 退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通

Python之配置日志模块logging

一.定义日志打印方式 如果我们运行自己的程序,有时候需要记录程序运行过程中出现的问题或者信息.可以运用日志模块logging来记录,该模块日志格式可以根据用户需求来自己定义. 常见打印日志信息形式如下: import logging logging.debug("========定义要打印的内容====debug①===========") logging.info("=========定义要打印的内容====info②===========") logging.w

python正则表达式之re模块方法介绍

python正则表达式之re模块其他方法 1:search(pattern,string,flags=0) 在一个字符串中查找匹配 2:findall(pattern,string,flags=0) 找到匹配,返回所有匹配部分的列表 In [1]: import re In [2]: str1 = 'imoooc videonum = 1000' In [3]: str1.find('1000') Out[3]: 18 In [4]: info = re.search(r'\d+',str1)

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

一.说明 使用命令行就可以获取到主板相关的信息 wmic csproduct get /value 输出内容如下: Caption=Computer System Product Description=Computer System Product IdentifyingNumber=PDVC400012152042979202 Name=Veriton M4610G SKUNumber= UUID=A2DC9CC8-30A8-1120-1228-222416000000 Vendor=Ace