python日志库

python中用作记录日记,默认分为六种日志级别(括号为级别对应的数值)

  • NOTSET(0)

  • DEBUG(10):详细信息,只有诊断问题时才需要

  • INFO(20):当程序运行时期望的一些信息

  • WARNING(30):软件运行正常,但是可能会有一些预期之外的事情发生

  • ERROR(40):由于一些严重问题导致软件一些功能出现问题

  • CRITICAL(50):很严重的错误直接导致软件不能运行

  • 在自定义日志级别时注意不要和默认的日志级别数值相同

  • 在logging执行时输出大于等于设置的日志级别的日志信息,默认的级别为WARNING

logging库

  • logging常见对象

    • Logger:日志,暴露函数给应用程序,基于日志记录器和过滤器级别决定那些日记有效

    • LogRecord:日志记录器,将日记传到响应的处理器处理

    • Handler:处理器,将(日志记录器产生的)日志记录发送至合适的目的地

    • Filter:过滤器,提供了更好的粒度控制,它可以决定输出那些日志记录

    • Formatter:格式化器,致命了最终输出中日志记录的格式

logging使用非常简单,使用basicConfig()方法就能基本满足使用;如果没有传入参数,会根据默认的配置创建Logger对象,默认日志级别被设置为WARNING

函数参数
参数描述

filename

日志输出到文件的文件名

filemode

文件模式,r[+],w[+],a[+]

format

日志输出的格式

datefat

日志附带日期时间的格式

style

格式占位符,默认为%和{}

level

日志输出级别

stream

定义输出流,用来初始化StreamHandler对象,不能喝filename参数一起使用,会抛出ValueError异常

handles

定义处理器,用来创建Handler对象,不能和filename、stream参数使用,否则会抛出ValueError异常

  • Formatter对象

    Formatter对象用来设置具体的输出格式,常用格式如下:

    格式
    变量描述

    %(asctime)s

    将日志的世界构造成可读的形式

    %(name)

    日志对象的名称

    %(filename)s

    不包含路径的文件名

    %(pathname)s

    包含路径的文件名

    %(funcName)

    日志记录所在的函数名

    %(levelname)s

    日志的级别名

    %(message)s

    具体的日志信息

    %(lineno)d

    日志记录所在的行好

    %(process)d

    当前进程ID

    %(processName)s

    当前进程名称

    %(thread)d

    当前线程ID

    %(threadName)s

    当前线程名称

  • Logger对象

    • getLogger(name=None):返回一个Logger对象,这个对象提供所有的log使用的接口,name不指定默认为root

    • basicConfig():对logging做一个基本的配置

第三方库-loguru

loguru的作用跟logging差不多

  • 存储到文件

最后更新于