日志级别等级排序: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')