luoye1

一、日志相关概念

日志是一种可以追踪某些软件运行时所发生事件得方法。软件开发人员可以向他们得代码中调用日志记录的相关的方法

来表明发生了某些事情。

 

二、logging模块的日志级别

不同的应用程序所定义的日志级别时会有所差别的,logging 模块默认定于一了以下几个日志级别,它允许开发人员自动逸其他

日志级别,但是不被推荐的。

  • DEBUG  :最详细的日志信息,典型的应用场景是问题诊断
  • INFO       :信息详细程度仅次于DEBUG,通常只记录关键节点的信息,用于确认一切都是按照我们预期的那样进行工作
  • WARNING:当某些不期望的事情发生记录信息(如内存快爆满),但是此时应用程序还是正常工作的
  • ERROR    :由于一个更严重的问题导致某些功能不能正常运行时记录的信息
  • CRITICAL :当发生严重的错误,导致程序不能继续运行时记录的信息2)日志级别(Level):
     debug - info - warning -error - critical(FATA)
调试 基本 警告 报错 严重错误

三、简单的日志输出

 

from logging import handlers  # 生成滚动日志时需要用 handlers.RotatingFileHandler,所以在这里需要导入 handlers 模块

import logging

#第一步:首先创建一个日志收集器
logger = logging.getLogger("rizhi_shoujiqi.log")
#第二步:设置自定义要收集的日志级别、日志格式、输出渠道
#1、设置 自定义要收集的日志级别
logger.setLevel(logging.INFO) # logging.INFO:表示手机INFO级别以上的日志

#2、设置自定义的日志格式(Formatter)

# 时间:年月时分秒 + 收集器的名字 + 级别 + 哪个文件的日志 + 行号 + 想要提示的信息
fmt_str = "%(asctime)s %(name)s %(levelname)s %(filename)s %(lineno)d %(message)s"

#实例化一个日志格式类
formatter = logging.StreamHandler()
#3、设置日志输出渠道
handler1 = logging.StreamHandler() # 表示日志可以输出到控制台

#第三步:设置日志输出渠道当中的日志显示格式
handlerl.setFormatter(formatter)

#第四步:将日志输出渠道与日志收集器绑定起来
logger.addHandler(handler1)

logger.info("hello,logging!!!")

  

拓展知识:上面我们只是演示了将日志输出到控制台的一种方式,但是如果我们想要用一个文件夹单独收集日志可不可以呢?那当然是可以的,代码以下:

#拓展:第二个渠道)实例化文件渠道(FileHandle)
#FileHandler :表示每一次生成的日志都是最新的
#handle2 = logging.FileHandler("rizhi_shoujiqi.log", encoding="utf-8")

#如果我们想到显示每一次的日志记录,那么可以采用滚动生成日志的方式
#滚动生成的区别:FileHandler 用 RotatingFileHandler  来替换,增加 maxBytes=1,backupCount=10 字段
handle2 = handlers.RotatingFileHandler("nmb-py37",maxBytes=1,backupCount=10,encoding="utf-8")

# 设置渠道当中的日志显示格式
handle2.setFormatter(formatter)
# 将渠道与日志收集器绑定起来
logger.addHandler(handle2)

# (指定handle3的日志级别为ERROR)文件渠道(FileHandle) handle3 = logging.FileHandler("rizhi_shoujiqi_error.log", encoding="utf-8") # 设置渠道当中的日志显示格式 handle3.setFormatter(formatter) # 设置handle3的日志输出级别为ERROR handle3.setLevel(logging.ERROR) # 将渠道与日志收集器绑定起来 logger.addHandler(handle3) logger.info("hello,logging!!") logger.warning("hello,warning!!") logger.error("你错了!!")

  

相关文章:

  • 2021-12-12
  • 2021-11-29
  • 2021-08-08
  • 2022-01-01
  • 2021-05-17
  • 2021-07-18
  • 2021-08-26
  • 2021-10-18
猜你喜欢
  • 2021-06-02
  • 2022-01-16
  • 2022-01-10
  • 2021-10-25
  • 2021-04-10
  • 2021-10-11
相关资源
相似解决方案