Logging处理
日志级别等级排序:critical > error > warning > info > debug
debug : 打印全部的日志( notset 等同于 debug )
info : 打印 info, warning, error, critical 级别的日志
warning : 打印 warning, error, critical 级别的日志
error : 打印 error, critical 级别的日志
critical : 打印 critical 级别
简单的使用一下
import logging
# 打印日志级别
def test_logging():
logging.debug('Python debug')
logging.info('Python info')
logging.warning('Python warning')
logging.error('Python Error')
logging.critical('Python critical')
test_logging()

当指定一个日志级别之后,会记录大于或等于这个日志级别的日志信息,小于的将会被丢弃,默认情况下日志打印只显示大于等于 WARNING 级别的日志
设置级别
def test_logging():
logging.basicConfig(level=logging.INFO) # 设置级别
logging.debug('Python debug')
logging.info('Python info')
logging.warning('Python warning')
logging.error('Python Error')
logging.critical('Python critical')

可以看到我们修改级别之后从我们设置的级别开始打印了,小于这个级别的不会去显示
设置日志文件
logging.basicConfig(filename="1.log", level=logging.INFO) # 设置日志文件,级别
然后就会在你所在.py文件的相对路径生成一个.log的文件,里面打印的内容一模一样

多模块记录日志
import logging
import mylog # 引入外部文件
# 打印日志级别
def test_logging():
logging.basicConfig(filename="1.log", level=logging.INFO) # 设置日志文件,级别
logging.debug('Python debug')
logging.info('4 info')
mylog.dolog()
logging.warning('Python warning')
logging.error('Python Error')
logging.critical('Python critical')
test_logging()
自己手动随便写一个函数,练练手就好了

结果如下:

接下来我们使用常规的日志处理操作(简单版)
import logging
# 创建日志器对象
logger = logging.getLogger("tang")
logger.setLevel("INFO") # 优先级最大
# 创建日志控制台处理器
con = logging.StreamHandler()
# 创建文本处理器
ben = logging.FileHandler("2.log")
# 控制台日期输入等级
con.setLevel(level="WARNING") # 其次是它
# 设置输出格式
console_fmt = "%(name)s,%(message)s,%(asctime)s"
file_fmt = "%(filename)s,%(asctime)s,%(levelname)s"
fmt1 = logging.Formatter(fmt=console_fmt)
fmt2 = logging.Formatter(fmt=file_fmt)
con.setFormatter(fmt1)
ben.setFormatter(fmt2)
# 添加控制台处理器
logger.addHandler(con)
logger.addHandler(ben)
# 定义过滤器
# filt1 = logging.Filter("tang") # 过滤名字
# 关联过滤器
# logger.addFilter(filt1)
# 可以单独加过滤器
# con.addFilter()
# ben.addFilter()
logger.debug('Python debug')
logger.info('Python info')
logger.warning('Python warning')
logger.error('Python Error')
logger.critical('Python critical')
本文详细介绍了Python的logging模块,包括日志级别(critical, error, warning, info, debug)及其用法,如何设置日志级别和输出到文件,以及在多模块中使用日志记录。示例代码展示了如何自定义日志格式,配置不同处理器,并通过过滤器控制日志输出。通过学习,你可以掌握在Python项目中进行有效日志管理的方法。
1316





