Python logging模块简述

文章目录

Python的logging模块,其实就是日志模块,我在训练wiki的中文语料库时看到一个前辈写的代码里涉及到了logging块的使用,鉴于这个库我也不会用,那就学习一下好了。

logging.getLogger():返回一个logger对象。
举个栗子:

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env python
#coding=utf-8

import logging
import sys
import os.path

program=os.path.basename(sys.argv[0])
logger=logging.getLogger(program)
print(logger)

运行结果,可以看到这里的logger对象就是本次运行的test.py

1
2
PS E:\NLP_Program\wiki> python3 .\test.py
<Logger test.py (WARNING)>

logging.DEBUG,logging.INFO,logging.WARNING,logging.ERROR,logging.CRITICAL
这几个模块属于设定logging下面的等级,依次是10,20,30,40,50.
代码演示:

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env python
#coding=utf-8

import logging
import sys
import os.path

print(logging.DEBUG)
print(logging.INFO)
print(logging.WARNING)
print(logging.ERROR)
print(logging.CRITICAL)

运行结果:

1
2
3
4
5
PS E:\NLP_Program\wiki> python3 .\test.py10
20
30
40
50

1
2
3
4
5
DEBUG	详细信息,典型地调试问题时会感兴趣。
INFO 证明事情按预期工作。
WARNING 表明发生了一些意外,或者不久的将来会发生问题(如‘磁盘满了’)。软件还是在正常工作。
ERROR 由于更严重的问题,软件已不能执行一些功能了。
CRITICAL 严重错误,表明软件已不能继续运行了。

知道这些参数的值以后,下面就应该是看这些值的作用是什么~
设定等级值使用的是logging.setLevel(),setLevel里面的参数是level,低于设定值的级别将被忽略,下面举个栗子

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env python
#coding=utf-8

import logging
import sys
import os.path

program=os.path.basename(sys.argv[0])
logger=logging.getLogger(program)
logger.setLevel(level=logging.DEBUG)

这里设定的level是logging.DEBUG,是最低的级别,可以根据需求换成上述需要的级别。

同时,logging下面可以设置提示信息,举个栗子(这里偷个懒直接在cmd里模拟了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> import logging
>>>
>>> logging.warning('This is a warning message')
WARNING:root:This is a warning message
>>>
>>> logging.debug('This is a debug message')
>>> logging.critical('This is a critical message')
CRITICAL:root:This is a critical message
>>>
>>> logging.error('This is a error message')
ERROR:root:This is a error message
>>>
>>> logging.info('This is a info message')
>>>

logging.info()主要用于在控制台输出日志信息。

logging.basicConfig():用于设置基本信息,比如输出消息的基本格式。
比如这样

1
logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s')