Skip to content

logging模块

日志一般有5个等级

DEBUG->INFO->WARING->ERROR->CRITICAL

  • DEBUG: 调试信息
  • INFO: 正常运行的时候的信息
  • WRING: 一个意想不到的事情发生了, 但是这一个软件还可以运行
  • ERROR: 严重的问题, 软件不能执行某一些功能
  • CRITICAL: 严重的错误, 程序可能不能运行了

默认的时候EARING以上的信息可以被执行

实际使用

python
import logging 
# 基础配资
logging.basicConfig(level=logging.WARNING, format="%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s:%(message)s")

logging.debug('这是个一debug')
logging.info("这是一个info")
logging.warning("这是一个warning")
logging.error("这是一个error")
logging.critical("这是一个critical")
bash
PS E:\JHY\python\2024-4-22> python -u "e:\JHY\python\2024-4-22\main.py"
2024-05-05 22:53:25,195 - main.py[line:7] - WARNING:这是一个warning
2024-05-05 22:53:25,195 - main.py[line:8] - ERROR:这是一个error      
2024-05-05 22:53:25,195 - main.py[line:9] - CRITICAL:这是一个critical

这个basicConfig

image-20240505225625562

image-20240505225641602

同时到文件和终端

python
import logging 
# 获取一个logger
logger = logging.getLogger()
logger.setLevel(logging.INFO) # 这一个总开关, 这一个输出的最高级别
# 创建一个文件Handler
logfile = 'log.txt'
fh = logging.FileHandler(logfile, mode='a')
fh.setLevel(logging.WARNING)
# 创建一个终端Handler
ch = logging.StreamHandler()
ch.setLevel(logging.INFO) # 这里使用的级别大于总开关的时候不起作用
# 获取一个格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 设置不同Handler的输出格式
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 把输出添加到logger
logger.addHandler(fh)
logger.addHandler(ch)
# 实际的信息打印
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')