美文网首页
logging日志模块

logging日志模块

作者: 午字横 | 来源:发表于2023-05-03 00:01 被阅读0次

日志一共分成5个等级,从低到高分别是:
DEBUG —>INFO —> WARNING —> ERROR —> CRITICAL

说明:

DEBUG:详细的信息,通常只出现在诊断问题上
INFO:确认一切按预期运行
WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作。
ERROR:更严重的问题,软件没能执行一些功能
CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行
这5个等级,也分别对应5种打日志的方法: DEBUG 、INFO 、WARNING 、ERROR 、CRITICAL。默认的是WARNING,当在WARNING或之上时才被跟踪。

# logger日志模块

import logging

logger=logging.getLogger()
logger.setLevel(logging.INFO)

logfile='./log.txt'
fh=logging.FileHandler(logfile,mode='a')
fh.setLevel(logging.DEBUG)

ch=logging.StreamHandler()
ch.setLevel(logging.WARNING)

# 第四步,定义handler的输出格式  
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
ch.setFormatter(formatter)

# 第五步,将logger添加到handler里面  
logger.addHandler(fh)
logger.addHandler(ch)

# 日志  
logger.debug('这是 logger debug message')
logger.info('这是 logger info message')
logger.warning('这是 logger warning message')
logger.error('这是 logger error message')
logger.critical('这是 logger critical message')
日志格式说明

logging.basicConfig函数中,可以指定日志的输出格式format,这个参数可以输出很多有用的信息,如下:

  • %(levelno)s: 打印日志级别的数值
  • %(levelname)s: 打印日志级别名称
  • %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
  • %(filename)s: 打印当前执行程序名
  • %(funcName)s: 打印日志的当前函数
  • %(lineno)d: 打印日志的当前行号
  • %(asctime)s: 打印日志的时间
  • %(thread)d: 打印线程ID
  • %(threadName)s: 打印线程名称
  • %(process)d: 打印进程ID
  • %(message)s: 打印日志信息

在工作中给的常用格式如下:

format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'


2023-05-02

相关文章

网友评论

      本文标题:logging日志模块

      本文链接:https://www.haomeiwen.com/subject/aqpojdtx.html