日志事件级别

级别 何时使用
DEBUG 细节信息,仅当诊断问题时适用。
INFO 确认程序按预期运行
WARNING 表明有已经或即将发生的意外(例如:磁盘空间不足)。程序仍按预期进行
ERROR 由于严重的问题,程序的某些功能已经不能正常执行
CRITICAL 严重的错误,表明程序已不能继续执行

默认的级别是 “WARNING“,意味着只会追踪该级别及以上的事件,除非更改日志配置。所追踪事件可以以不同形式处理。最简单的方式是输出到控制台。另一种常用的方式是写入磁盘文件。


basicConfig()设置

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
28
29
# -*- coding:utf-8 -*-

import logging

#默认的warning级别,只输出warning以上的
#使用basicConfig()来指定日志级别和相关信息

logging.basicConfig(level=logging.DEBUG #设置日志输出格式
,filename="demo.log" #log日志输出的文件位置和文件名
,filemode="w" #文件的写入格式,w为重新写入文件,默认是追加
,format="%(asctime)s - %(name)s - %(levelname)-9s - %(filename)-8s : %(lineno)s line - %(message)s" #日志输出的格式
# -8表示占位符,让输出左对齐,输出长度都为8位
,datefmt="%Y-%m-%d %H:%M:%S" #时间输出的格式
)

logging.debug("This is DEBUG !!")
logging.info("This is INFO !!")w
logging.warning("This is WARNING !!")
logging.error("This is ERROR !!")
logging.critical("This is CRITICAL !!")

#在实际项目中,捕获异常的时候,如果使用logging.error(e),只提示指定的logging信息,不会出现
#为什么会错的信息,所以要使用logging.exception(e)去记录。

try:
3/0
except Exception as e:
# logging.error(e)
logging.exception(e)

输出日志如下:

1
2
3
4
5
6
7
8
9
10
11
2021-03-26 02:03:01 - root - DEBUG     - basiclogging : 16 line - This is  DEBUG !!
2021-03-26 02:03:01 - root - INFO - basiclogging : 17 line - This is INFO !!
2021-03-26 02:03:01 - root - WARNING - basiclogging : 18 line - This is WARNING !!
2021-03-26 02:03:01 - root - ERROR - basiclogging : 19 line - This is ERROR !!
2021-03-26 02:03:01 - root - CRITICAL - basiclogging : 20 line - This is CRITICAL !!

2021-03-26 03:16:47 - root - ERROR - basiclogging : 27 line - division by zero
Traceback (most recent call last):
File "E:/pycharm_project/examples-of-web-crawlers-master/logginng/basiclogging", line 24, in <module>
3/0
ZeroDivisionError: division by zero