python日志模块_Python之日志处理-logging模块使用教程

本文详细介绍了Python的Logging模块,包括日志记录的基本方法、日志级别、日志过滤和格式化。通过示例展示了如何将日志输出到文件,并讨论了日志切割和不同级别日志的记录。还提到了使用配置文件进行日志管理的优势,如代码整洁和易于维护。最后,提出了几个日志记录的需求,涉及不同日志级别和格式的记录以及日志切割。
摘要由CSDN通过智能技术生成

Logging模块

日志记录是跟踪某些软件运行时发生的事件的一种方法。该软件的开发人员将日志调用添加到代码中,以表明发生了某些事件。事件由描述性消息描述,该消息可选地包含变量数据(例如,对于每个事件的发生可能不同的数据)。事件也具有开发人员将其归因于事件的重要性;重要性也可以称为级别或严重性。

日志记录基本方法

诊断问题。

确认代码是否按预期工作。

表明一些意想不到的事情发生了,或说明一些问题在不久的将来(例如低磁盘空间)。

由于一个更严重的问题,程序没能执行一些功能。

一个严重的错误,这表明程序本身可能无法继续运行。

举个栗子

一个简单的栗子

执行输出:

可以看出logging默认Log级别为。

将日志记录到文件

执行后,脚本当前目录会多一个文件。

进阶

logging库采用了模块化的方式,提供了4种类别的组件,分别为: and 。

loggers 提供应用程序代码直接使用的接口。

handlers 用于将日志记录发送到指定的目的位置。

filters 提供更细粒度的日志过滤功能,用于决定哪些日志记录将会被输出(其它的日志记录将会被忽略)。

formatters 用于控制日志信息的最终输出格式。

loggers

loggers对象有三个功能,首先是向公开方法,方便程序运行时记录日志。其次是根据日志级别来筛选日志,最后,将日志传给符合的handlers。

logger.setLevel() 设置日志级的级别。

logger.addHandler() 从loggers对象中添加handlers对象。

logger.removeHandler() 从loggers对象中删除handlers对象。

logger.addFilter() 从loggers对象中添加filters对象。

logger.removeFilter() 从loggers对象中删除filters对象。

handlers

handler 负责将特定程度的日志级别发送消息到一个特定的位置。

handler.setLevel() 设置日志级的级别,为什么会有两个设置日志级别?logger设置的级别是确定哪种级别的消息将传递给handler,handler设置的级别是确定发送哪种级别的消息。

handler.setFormatter() 设置handler的formatter对象。

addFilter() 将Filter对象添加到handler对象上。

removerFilter() 从handler对象上移除Filter对象。

formatters

格式化程序对象配置日志消息的最终顺序、结构和内容。

filters

Filter可以被Handler和Logger用来做比level更细粒度的、更复杂的过滤功能。Filter是一个过滤器基类,它只允许某个logger层级下的日志事件通过过滤。

示例代码

执行后输出

使用配置的方式:

下面是log.conf文件

py文件

执行后和上面的输出的结果一样。

配置文件的方式相比代码的方式有以下的优点:

代码看上去更加整洁,便于阅读

配置的方式以后修改只需改配置文件,不需要更改代码

实例

现在有以下几个日志记录的需求:

要求将所有级别的所有日志都写入磁盘文件中。

all.log文件中记录所有的日志信息,日志格式为:日期和时间 - 日志级别 - 日志信息。

error.log文件中单独记录error及以上级别的日志信息,日志格式为:日期和时间 - 日志级别 - 文件名[:行号] - 日志信息。

要求all.log在每天凌晨进行日志切割。

all.log

error.log

End

如果你觉得还不错,那就点个赞吧

听说喜欢留言、分享的人

运气都不会差

python笔记侠

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值