每天一个python库:logging

logging库是Python标准库的一部分,提供了一个通用的日志系统。

例如

1

2

3

4

5

6

7
import logging

logging.debug('debug message')

logging.info('info message')

logging.warn('warn message')

logging.error('error message')

logging.critical('critical message')

运行即可在终端看到日志内容,默认是展示warn级别以上的,其中root是默认的logging实例名字

1

2

3
WARNING:root:warn message

ERROR:root:error message

CRITICAL:root:critical message

关于logging的配置可以分为内置函数设置和配置文件设置,这里先介绍下logging模块的几个主要内容
logger:提供日志接口,供应用代码使用。logger最常用的操作有两类:配置和发送日志消息。可以通过logging.getLogger(name)获取logger对象,如果不指定name则返回root对象,多次使用相同的name调用getLogger方法返回同一个logger对象。
handler:将日志记录(log record)发送到合适的目的地(destination),比如文件,socket等。一个logger对象可以通过addHandler方法添加0到多个handler,每个handler又可以定义不同日志级别,以实现日志分级过滤显示。
filter:提供一种优雅的方式决定一个日志记录是否发送到handler。
formatter:指定日志记录输出的具体格式。formatter的构造方法需要两个参数:消息的格式字符串和日期字符串,这两个参数都是可选的。

内置函数设置:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27
import logging

logger = logging.getLogger('my_log_name') 

#设置日志最小级别

logger.setLevel(logging.DEBUG)

#创建handler实例,这里的filehandler即把日志保存在当前目录的log.log文件中

fileHandler = logging.FileHandler('log.log')   

#设置输入文件的日志级别,先过滤ogger.setLevel(logging.DEBUG)的日志级别,再过滤这里的级别

fileHandler.setLevel(logging.DEBUG)     

#设置日志信息格式

fmt = '%(asctime)-12s %(levelname)s %(filename)s %(lineno)d %(message)s' 

#实例化格式 

formatter = logging.Formatter(fmt)  

#在fileHandler上增加日志格式

fileHandler.setFormatter(formatter)

#logger实例增加fileHandler  

logger.addHandler(fileHandler)   

logger.debug('debug message')

logger.info('info message')

logger.warn('warn message')

logger.error('error message')

logger.critical('critical message')

运行后便会在当前目录生成一个log.log文件,里面有日志信息

也可以用basicConfig函数配置

1

2

3

4

5

6

7

8

9

10

11

12
import logging

fmt = '%(asctime)-12s %(levelname)s %(filename)s %(lineno)d %(message)s'

logging.basicConfig(filename='log.log', format=fmt, level=logging.DEBUG)

logger = logging.getLogger('my_log_name')

logger.debug('debug message')

logger.info('info message')

logger.warn('warn message')

logger.error('error message')

logger.critical('critical message')

常用的format

格式 描述
%(levelno)s 打印日志级别的数值
%(levelname)s 打印日志级别名称
%(pathname)s 打印当前执行程序的路径
%(filename)s 打印当前执行程序名称
%(funcName)s 打印日志的当前函数
%(lineno)d 打印日志的当前行号
%(asctime)s 打印日志的时间
%(thread)d 打印线程id
%(threadName)s 打印线程名称
%(process)d 打印进程ID
%(message)s 打印日志信息

文件配置设置

ps(这里是抄袭网上的,通过文件配置可以统一设置日志格式,不需要过多的重复代码:)

新建logging.conf文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27
[loggers]  

keys=root,simpleExample  

[handlers]  

keys=consoleHandler  

[formatters]  

keys=simpleFormatter  

[logger_root]  

level=DEBUG  

handlers=consoleHandler  

[logger_simpleExample]  

level=DEBUG  

handlers=consoleHandler  

qualname=simpleExample  

propagate=0  

[handler_consoleHandler]  

class=StreamHandler  

level=DEBUG  

formatter=simpleFormatter  

args=(sys.stdout,)  

[formatter_simpleFormatter]  

format=%(asctime)s - %(name)s - %(levelname)s - %(message)s

使用配置文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14
import logging  

import logging.config  

logging.config.fileConfig("logging.conf")    # 采用配置文件  

# create logger  

logger = logging.getLogger("simpleExample")  

# "application" code  

logger.debug("debug message")  

logger.info("info message")  

logger.warn("warn message")  

logger.error("error message")  

logger.critical("critical message")

原文:大专栏  每天一个python库:logging

原文地址:https://www.cnblogs.com/wangziqiang123/p/11632111.html

时间: 2024-10-10 09:51:09

每天一个python库:logging的相关文章

Python 库大全

作者:Lingfeng Ai链接:http://www.zhihu.com/question/24590883/answer/92420471来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. Awesome Python中文版来啦! 本文由 伯乐在线 - 艾凌风 翻译,Namco 校稿.未经许可,禁止转载!英文出处:github.com.欢迎加入翻译组. 原文链接:Python 资源大全 1200+收藏,600+赞,别只顾着自己私藏呀朋友们 ------------

连续加班一周最终把所有的Python库整理出来了,愿各位早日学会Python!

我们直接开始主题,小伙伴们需要资料的话可以私信我回复01,可以获得大量PDF书籍和视频! Python常用的库简单介绍一下 fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构建格式化的输出. difflib ,[Python]标准库,计算文本差异 . Levenshtein ,快速计算字符串相似度. Chardet 字符编码探测器,可以自动检测文本.网页

Python干货大派送!一千个Python库,只有你想不到,没有查不到!

环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. virtualenv – 创建独立 Python 环境的工具. virtualenvwrapper- virtualenv 的一组扩展. 包管理 管理包和依赖的工具. pip – Python 包和依赖关系管理工具. pip-tools – 保证 Python 包依赖关系更新的一组工具. conda

20个必不可少的Python库也是基本的第三方库

今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们是: Requests.Kenneth Reitz写的最富盛名的http库.每个Python程序员都应该有它. Scrapy.如果你从事爬虫相关的工作,那么这个库也是必不可少的.用过它之后你就不会再想用别的同类库了. wxPython.Python的一个GUI(图形用户界面)工具.我主要用它替代tkinter.你一定会爱上它的. Pillow.它是PIL(Python图形库)的一个友好分支.对于用户比PIL

Python库整理

库名称简介 Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主要用于在终端或浏览器端构建格式化的输出. difflib,[Python]标准库,计算文本差异 Levenshtein,快速计算字符串相似度. fuzzywuzzy,字符串模糊匹配. esmre,正则表达式的加速器. shortuuid,一组简洁URL/UUID函数库. ftfy,Unicode文本工具7 unidecode,a

转:花了三个月终于把所有的Python库全部整理了!

链接:https://www.jianshu.com/p/2642f9d28f34 库名称简介 Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主要用于在终端或浏览器端构建格式化的输出. difflib,[Python]标准库,计算文本差异 Levenshtein,快速计算字符串相似度. fuzzywuzzy,字符串模糊匹配. esmre,正则表达式的加速器. shortuuid,一组简洁

这几天加班熬夜把所有Python库整理了一遍,非常全面!

库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码.colorama 主要用来给文本添加各种颜色,并且非常简单易用.Prettytable 主要用于在终端或浏览器端构建格式化的输出.difflib,[Python]标准库,计算文本差异Levenshtein,快速计算字符串相似度.fuzzywuzzy 字符串模糊匹配.esmre 正则表达式的加速器.shortuuid 一组简洁URL/UUID函数库.ftfy,Unicode文本工具7unidecode,ascii和U

花了半个月,终于把Python库全部整理出来了,非常全面

库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构建格式化的输出. difflib,[Python]标准库,计算文本差异Levenshtein,快速计算字符串相似度. fuzzywuzzy 字符串模糊匹配. esmre 正则表达式的加速器. shortuuid 一组简洁URL/UUID函数库. ftfy,Unicode文本工具7 unidecode

python库总结(转)

转:https://www.toutiao.com/i6798774301592912387/ 库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构建格式化的输出. difflib,[Python]标准库,计算文本差异Levenshtein,快速计算字符串相似度. fuzzywuzzy 字符串模糊匹配. esmre 正则表达式的加速器. shortu