logging简介

日志的等级

  • DEBUG 最详细的日志信息,典型应用场景是问题诊断
  • INFO 信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作
  • WARNING 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
  • ERROR 由于一个更严重的问题导致某些功能不能正常运行时记录的信息
  • CRITICAL 当发生严重错误,导致程序不能继续运行时记录的信息

logging模块的使用

第一种方式是使用logging提供的模块级别的函数

logging.debug()
logging.info()
logging.warning()
logging.error()
logging.critical()

第二种方式是使用logging日志系统的四大组件

  • Logger 提供应用程序代码直接使用的接口
  • Handler 用于将日志记录发送到指定的位置
  • Filter 提供更细粒度的日志过滤功能,用于决定哪些日志记录会被输出(其他的日志记录将会被忽略)
  • Formatter 用于控制日志信息的最终输出格式

logging.basicConfig(函数说明)

Logger类相关方法

Handler类方法

Handler 相关子类

=

logging模块的格式化字符串

  代码示例

import logging
import logging.handlers
import datetime

logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)

rf_handler = logging.handlers.TimedRotatingFileHandler('all.log', when='midnight', interval=1, backupCount=7, atTime=datetime.time(0, 0, 0, 0))
rf_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))

f_handler = logging.FileHandler('error.log')
f_handler.setLevel(logging.ERROR)
f_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(filename)s[:%(lineno)d] - %(message)s"))

logger.addHandler(rf_handler)
logger.addHandler(f_handler)

logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')

 

posted @ 2020-10-12 09:06  大碗炸酱面  阅读(316)  评论(0)    收藏  举报