一、说明

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

特点:

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

二、简单示例

安装 iupdatable 包

pip install --upgrade iupdatable

使用实例:

 from iupdatable.logging.Logger import Logger
from iupdatable.logging.LogLevel import LogLevel def test_logging():
# 日志等级:
# CRITICAL 同:FATEL,下同
# ERROR
# WARNING
# INFO
# DEBUG
# NOTSET 按照 WARNING 级别输出 # 设置为 DEBUG,输出所有信息
# 设置为 WARNING, INFO、DEBUG 级别的日志就不会输出
Logger.get_instance().config(log_level=LogLevel.DEBUG) Logger.get_instance().debug('debug message1')
Logger.get_instance().info('info message1')
Logger.get_instance().warning('warning message1')
Logger.get_instance().error('error message1')
Logger.get_instance().debug('debug message1', is_with_debug_info=True) # 要想输出具体的调试信息
Logger.get_instance().fatal('fatal message1')
Logger.get_instance().critical('critical message1') # fatal = critical # 也可以输出变量
abc = [1, 2, 4]
Logger.get_instance().info(abc) 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,即:默认不添加

使用下面代码举例:

 from iupdatable.logging.Logger import Logger
from iupdatable.logging.LogLevel import LogLevel def logging_debug_info():
Logger.get_instance().debug('message',   is_with_debug_info=True)
Logger.get_instance().info('message',    is_with_debug_info=True)
Logger.get_instance().warning('message',  is_with_debug_info=True)
Logger.get_instance().error('message', is_with_debug_info=True)
Logger.get_instance().fatal('message', is_with_debug_info=True)
Logger.get_instance().critical('message', is_with_debug_info=True) logging_debug_info()

输出内容就会变成:

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

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

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

  1. [Python] iupdatable包:Timer 类使用介绍

    iudatable包是我对常用函数进行的封装后发布的一个python包,教程汇总目录: [Python] iupdatable包使用说明 安装 iupdatable 包 pip install iup ...

  2. [Python] iupdatable包使用说明

    iudatable包是我对常用函数进行的封装后发布的一个python包. 安装 iupdatable 包 pip install iupdatable 更新 iupdatable 包 pip inst ...

  3. Python 中 logging 日志模块在多进程环境下的使用

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...

  4. 日志模块详细介绍 hashlib模块 动态加盐

    目录 一:hashlib模块 二:logging 一:hashlib模块 加密: 将明文数据通过一系列算法变成密文数据(目的就是为了数据的安全) 能够做文件一系列校验 python的hashlib提供 ...

  5. Python基础-包与模块

    Python基础-包与模块 写在前面 如非特别说明,下文均基于Python3 摘要 为重用以及更好的维护代码,Python使用了模块与包:一个Python文件就是一个模块,包是组织模块的特殊目录(包含 ...

  6. python的logging日志模块(一)

    最近修改了项目里的logging相关功能,用到了Python标准库里的logging模块,在此做一些记录.主要是从官方文档和stackoverflow上查询到的一些内容. 官方文档 技术博客 基本用法 ...

  7. python基础-包和模块

    Python基础-包与模块 写在前面 如非特别说明,下文均基于Python3 摘要 为重用以及更好的维护代码,Python使用了模块与包:一个Python文件就是一个模块,包是组织模块的特殊目录(包含 ...

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

    一.简介 文件模块主要是对常见的文件读写功能进行了封装,默认使用UTF8(utf_8_sig)格式编码,实现一行代码读写文件. 二.简单示例 安装 iupdatable 包 pip install - ...

  9. 『无为则无心』Python日志 — 64、Python日志模块logging介绍

    目录 1.日志的作用 2.为什么需要写日志 3.Python中的日志处理 (1)logging模块介绍 (2)logging模块的四大组件 (3)logging日志级别 1.日志的作用 从事与软件相关 ...

随机推荐

  1. 收集到的技术相关网址——delphi

    1.DLL封装登录框架实现代码复用 https://www.cnblogs.com/wenwencao/articles/1333659.html

  2. Word Flow:创造吉尼斯世界纪录的触屏文本输入的全新体验——微软Windows Phone 8.1系统倾情巨献

    Flow:创造吉尼斯世界纪录的触屏文本输入的全新体验--微软Windows Phone 8.1系统倾情巨献" title="Word Flow:创造吉尼斯世界纪录的触屏文本输入的全 ...

  3. zoj2588-tarjan求桥/割边

    tarjan求桥,算法流程详见核心代码: void tarjan(int k){ dfn[k]=low[k]=++cnt; //fa[k]=(edge){f,0,fid}; for(int i=hea ...

  4. HTTP协议八种请求类型介绍

    HTTP 协议中共定义了八种方法或者叫“动作”来表明对 Request-URI 指定的资源的不同操作方式,具体介绍如下: OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法.也可以利用向W ...

  5. python3下scrapy爬虫(第十一卷:scrapy数据存储进mongodb)

    说起python爬虫数据存储就不得不说到mongodb,现在我们来试一下scrapy操作mongodb 首先开启mongodb mongod --dbpath=D:\mongodb\db 开启服务后就 ...

  6. HDU-1251-统计难题(Trie树)(BST)(AVL)

    字典树解法(Trie树) Accepted 1251 156MS 45400K 949 B C++ #include"iostream" #include"cstdlib ...

  7. 01_JDK的下载-安装-配置

    下载 https://www.oracle.com/technetwork/java/javase/downloads/index.html 安装 1.安装路径不要有空格(去除安装路径中的Progra ...

  8. Django中查询相关操作

    查询集特性 1)惰性查询:只有在实际使用查询集中的数据的时候才会发生对数据库的真正查询. 2)缓存:当使用的是同一个查询集时,第一次使用的时候会发生实际数据库的查询,然后把结果缓存起来,之后再使用这个 ...

  9. python中sort和sorted排序的相关方法

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. 1)排序基础 简单的升序排序是非常容易的.只需要调用sorte ...

  10. 求最长公共子序列-DP问题

    Longest common subsequence problem The longest common subsequence (LCS) problem is the problem of fi ...