Python-logging日志模块

日志

日志是跟踪软件运行时所发生的事件的一种方法。软件开发者在代码中调用日志函数,表明发生了特定的事件。事件由描述性消息描述,该描述性消息可以可选地包含可变数据(即,对于事件的每次出现都潜在地不同的数据)。事件还具有开发者归因于事件的重要性;重要性也可以称为级别或严重性。

logging日志等级

logging模块默认定义了以下五种日志等级:

  • DEBUG
      最详细日志信息, 多用于问题诊断
  • INFO
      仅次于DEBUG, 多用于记录关键点信息, 确保程序按预期执行
  • WARNING
      低等级故障, 但程序仍能运行, 如磁盘空间不足警告
  • ERROR
      由于比WARNING严重的问题, 导致某些功能不能正常运行
  • CRITICAL
      严重错误, 导致应用程序不能继续运行

默认等级是WARNING,即仅仅这个等级及以上的才会反馈信息,DEBUG和INFO均不会被反馈。

常用函数

  • logging.debug(msg)
    logging.info(msg)
    logging.warning(msg)
    logging.error(msg)
    logging.critical(msg)
    上述五个函数可分别设置其对应级别的日志信息内容
    msg--字符串格式,内容即输出日志信息
  • logging.basicConfig(**kwargs)
    为日志模块配置基本信息。设置后可以直接使用logging来打印日志,其常用关键字参数如下:
    • filename: 日志文件的保存路径。如果配置了该参数,将自动创建一个FileHandler作为Handler;
    • filemode: 日志文件的打开模式。 默认值为’a’,表示日志消息以追加的形式添加到日志文件中。如果设为’w’, 那么每次程序启动的时候都会创建一个新的日志文件;
    • datefmt: 指定时间格式,同time.strftime()
    • level: 设置日志级别,默认为logging.WARNING
    • stream: 设置特定的流用于初始化StreamHandler;指定日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略
    • format: 指定输出的格式和内容
      format参数中可能用到的格式化串如下:
      %(name)s Logger的名字
      %(levelno)s 数字形式的日志级别
      %(levelname)s 文本形式的日志级别
      %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
      %(filename)s 调用日志输出函数的模块的文件名
      %(module)s 调用日志输出函数的模块名
      %(funcName)s 调用日志输出函数的函数名
      %(lineno)d 调用日志输出函数的语句所在的代码行
      %(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
      %(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
      %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
      %(thread)d 线程ID。可能没有
      %(threadName)s 线程名。可能没有
      %(process)d 进程ID。可能没有
      %(message)s 用户输出的消息
  • logging.getLogger([name])
    创建Logger对象。日志记录的工作主要由Logger对象来完成。在调用getLogger时要提供Logger的名称(使用相同名称来调用getLogger,返回的是同一个对象的引用。),Logger实例之间有层次关系,这些关系通过Logger名称来体现,如:
    p = logging.getLogger(“root”)
    c1 = logging.getLogger(“root.c1”)
    c2 = logging.getLogger(“root.c2”)
    例子中,p是父logger, c1,c2分别是p的子logger。c1, c2将继承p的设置。如果省略了name参数, getLogger将返回日志对象层次关系中的根Logger。
  • logging.StreamHandler
  • logging.FileHandler
  • logging.Formatter
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本篇文章主要对 python logging 的介绍加深理解。更主要是 讨论在多进程环境下如何使用logging ...
    doudou0o阅读 41,421评论 52 42
  • 1、import logging logging.basicConfig(level=logging.DEBUG,...
    SkTj阅读 204评论 0 8
  • (一)、日志相关概念 1、日志的作用 通过log的分析,可以方便用户了解系统或软件、应用的运行情况;如果你的应用l...
    Rainy丶Wang阅读 671评论 0 0
  • logging模块介绍: logging是python内置的标准库模块,模块提供不同的日志级别,并可以采用不同的方...
    4ffde5305e8f阅读 3,004评论 0 2
  • 也许你一生中走错了不少路 看错不少人 承受了许多的背叛 落魄得狼狈不堪 但都无所谓 只要还活着 就总有希望 余生很...
    庄小多阅读 275评论 0 1

友情链接更多精彩内容