编程语言
首页 > 编程语言> > [Python3] 042 日志

[Python3] 042 日志

作者:互联网

目录

LOG

1. 日志相关概念

1.1 日志的级别 level

  1. DEBUG
  2. INFO
  3. NOTICE
  4. WARNING
  5. ERROR
  6. CRITICAL
  7. ALERT
  8. EMERGENCY

1.2 LOG 的作用

1.3 日志信息

1.4 成熟的第三方日志

1.5 注意

2. Logging 模块

2.1 日志级别

2.2 使用方法

  1. 直接使用 logging,因为 logging 封装了其他组件

  2. 用 loging 四大组件直接定制

2.3 注意事项

2.4 logging 模块级别的日志

2.4.1 logging 的几个函数

函数 释义
logging.debug(msg, *args, **kwargs) 创建一条严重级别为 DEBUG 的日志记录
logging.info(msg, *args, **kwargs) 创建一条严重级别为 INFO 的日志记录
logging.warning(msg, *args, **kwargs) 创建一条严重级别为 WARNING 的日志记录
logging.error(msg, *args, **kwargs) 创建一条严重级别为 ERROR 的日志记录
logging.critical(msg, *args, **kwargs) 创建一条严重级别为 CRITICAL 的日志记录
logging.log(level, *args, **kwargs) 创建一条严重级别为 level 的日志记录
logging.basicConfig(**kwargs) root logger 进行一次性配置

2.4 2 举例

参数 用法 释义
asctime %(asctime)s 日志事件发生的时间——人类可读时间
如:2019-12-24 17:00:12,765
created %(created)f 日志事件发生的时间——时间戳
与调用 time.time() 函数返回的值相同
relativeCreated %(relativeCreated)d 日志事件发生的时间相对于
logging 模块加载时间的相对毫秒数
msecs %(msecs)d 日志事件发生事件的毫秒部分
levelname %(levelname)s 该日志记录的文字形式的日志级别
'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'
levelno %(levelno)s 该日志记录的数字形式的日志级别 (10, 20, 30, 40, 50)
name %(name)s 所使用的日志器名称,默认是'root'
因为默认使用的是 rootLogger
message %(message)s 日志记录的文本内容,通过 msg % args计算得到的
pathname %(pathname)s 调用日志记录函数的源码文件的全路径
filename %(filename)s pathname 的文件名部分,包含文件后缀
module %(module)s filename 的名称部分,不包含后缀
lineno %(lineno)d 调用日志记录函数的源代码所在的行号
funcName %(funcName)s 调用日志记录函数的函数名
process %(process)d 进程 ID
processName %(processName)s 进程名称,Python 3.1 新增
thread %(thread)d 线程 ID
threadName %(thread)s 线程名称

2.5 logging 模块的处理流程

组件 作用
日志器 Logger 产生日志的一个接口
处理器 Handler 把产生的日志发送到相应的目的地
过滤器 Filter 更精细的控制那些日志输出
格式器 Formatter 对输出信息进行格式化

2.5.1 Logger

函数 释义
Logger.setLevel() 设置日志器将会处理的日志消息的最低严重级别
Logger.addHandler() 和 Logger.removeHandler() 为该 logger 对象添加 和 移除一个 handler 对象
Logger.addFilter() 和 Logger.removeFilter() 为该 logger 对象添加 和 移除一个 filter 对象
Logger.debug 产生一条 debug 级别的日志
info, error 等同理
Logger.exception() 创建类似于 Logger.error 的日志消息
Logger.log() 获取一个明确的日志 level 参数类创建一个日志记录
  1. 实例化
  2. logging.getLogger()

2.5.2 Handler

方法 释义
logging.StreamHandler 将日志消息发送到输出到 Stream
如 std.out, std.err 或任何 file-like 对象
logging.FileHandler 将日志消息发送到磁盘文件
默认情况下文件大小会无限增长
logging.handlers.RotatingFileHandler 将日志消息发送到磁盘文件,并支持日志文件按大小切割
logging.hanlders.TimedRotatingFileHandler 将日志消息发送到磁盘文件,并支持日志文件按时间切割
logging.handlers.HTTPHandler 将日志消息以 GET 或 POST 的方式发送给一个 HTTP 服务器
logging.handlers.SMTPHandler 将日志消息发送给一个指定的 email 地址
logging.NullHandler 该 Handler 实例会忽略 error messages
通常被想使用 logging 的 library 开发者使用来避免
'No handlers could be found for logger XXX' 信息的出现

2.5.3 Filter 类

2.5.4 Format 类

参数 释义
fmt 指定消息格式化字符串,如果不指定该参数则默认使用 message 的原始值
datefmt 指定日期格式字符串,如果不指定该参数则默认使用 "%Y-%m-%d %H:%M:%S"
style Python 3.2 时新增的参数,可取值为 '%', '{' 和 '$',如果不指定该参数则默认使用 '%'

标签:logging,记录,042,kwargs,Logger,级别,日志,Python3
来源: https://www.cnblogs.com/yorkyu/p/12093785.html