一、说明

日志模块是对 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. C++ 中类的内存布局

    在许多笔试面试中都会涉及到sizeof 运算符的求值问题. 这类问题主要分四类: 基本数据类型,如int,bool,fload,long,long,int * 等,这一类比较简单,但要注意x86和x6 ...

  2. python代码覆盖率统计-coverage

    coverage.py是一个用来统计python程序代码覆盖率的工具.它使用起来非常简单,并且支持最终生成界面友好的html报告.在最新版本中,还提供了分支覆盖的功能. 官方网站: http://ne ...

  3. 【Linux_Shell 脚本编程学习知识点、判断传入参数是否是 整数】

    判断脚本传入的参数是否是整数 常用的几种方法 完整Shell 脚本如下: #!/bin/sh ##################################################### ...

  4. Lua 学习 chapter30 编写c函数的技巧 - Jow的博客

    目录 数组操作 字符串操作 在c函数中保存状态 生活总需要一点仪式感,然后慢慢的像那个趋向完美的自己靠近. 数组操作 Lua中的数组就是以特殊的方式使用边.像lua_setttable and lua ...

  5. ClassNotFoundException: org.apache.commons.logging.Log

    参考: https://bbs.csdn.net/topics/392090371 omcat无法启动,报如下错误: 严重: A child container failed during start ...

  6. python3爬虫:利用urllib与有道翻译获得翻译结果

    在实现这一功能时遇到了一些困难,由于按照<零基础入门python>中的代码无法实现翻译,会爆出“您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai ...

  7. 转:get value from agent failed: ZBX_TCP_READ() failed;[104] connection reset by peer

    get value from agent failed: ZBX_TCP_READ() failed;[104] connection reset by peer zabbix都搭建好了,进行一下测试 ...

  8. 谷歌Waymo估值700亿:自动驾驶迎来春天,但前路漫漫

    在经过近一年的法庭之争后,Waymo与Uber的自动驾驶专利权诉讼案于近日宣布和解.最终的结果,是Uber向Waymo支付0.34%股权(目前价值2.44亿美元).但事实上,与Uber的官司解决后,一 ...

  9. vue watch和computed的使用场景

    watch 监听某个数据的变化(监听完调用什么函数) 一个数据影响多个数据 (比如:浏览器自适应.监控路由对象.监控自身属性变化) computed 计算后返回新 一个数据受多个数据影响(比如:计算总 ...

  10. Center Loss - A Discriminative Feature Learning Approach for Deep Face Recognition

    URL:http://ydwen.github.io/papers/WenECCV16.pdf这篇论文主要的贡献就是提出了Center Loss的损失函数,利用Softmax Loss和Center ...