Python学习笔记(25)-Python日志使用详解与实例

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本文目录1. 简介2. 为何使用日志3. 如何输出日志4. 日志级别5. 日志禁用6. 将日志输出到文件

1. 简介

本篇主要演示为何使用日志,如何输出日志,如何设置日志的级别,如何限制各级别的日志的输出以及如何将日志输出到文件。


2. 为何使用日志

使用print()函数输出调试信息是非常不正确的,最简单的原因就是:print()会遍布于程序各处,当程序员不想再输出调试信息时,需要一处一处的去查找然后注释掉print(),非常麻烦。


所以需要注意的是,print()函数实际上是输出给用户看到,就如input()是用来接收用户输入一样。


日志却是用来显示给程序员看的信息的,日志信息可以区分日志信息的严重级别,同时可以轻易的选择是调试状态还是运行状态(可以区分显示的日志级别)。


3. 如何输出日志

首先导入日志模块logging,然后对其进行配置,主要配置日志级别(稍后具体讲,日志输出的格式)。代码如下:

#导入日志模块
import logging
#日志模块配置(DEBUG级别,格式为:时间-级别-消息)
logging.basicConfig(level=logging.DEBUG,format="%(asctime)s-%(levelname)s:%(message)s")
#输出日志
logging.debug("debug日志")

4. 日志级别

主要有五种,可以通过logging.basicConfig中的level参数修改级别。

DEBUG:小问题,一般在调试时才会使用
INFO:正常运行消息
WARNING:警告,可能有问题
ERROR:错误,导致程序部分处理失败
CRITICAL:致命的问题,程序都要完蛋

如果设置级别为DEBUG,则会输出所有级别日志

如果设置级别为ERROR,则只会输出ERROR和更高的CRITICAL级别的日志。

例如:

#导入日志模块
import logging
#日志模块配置(级别,格式为:时间-级别-消息)
logging.basicConfig(level=logging.ERROR,format="%(asctime)s-%(levelname)s:%(message)s")
#输出日志
logging.debug("debug日志")#不会输出
logging.error("error日志")#会输出
logging.critical("critical日志")#会输出

5. 日志禁用

如果在程序都调试完了,准备运行了,只想输出CRITICAL级别及以上级别的日志,则可以调用logging.disable(logging.ERROR),该方法的功能是禁用该级别及更低级别的日志。

例如:

#导入日志模块
import logging
#日志模块配置(级别,格式为:时间-级别-消息)
logging.basicConfig(level=logging.ERROR,format="%(asctime)s-%(levelname)s:%(message)s")
#禁用日志
logging.disable(logging.ERROR)
#输出日志
logging.debug("debug日志")#不会输出
logging.error("error日志")#不会输出
logging.critical("critical日志")#会输出

6. 将日志输出到文件

直接举例即可,只是在basicConfig中添加filename参数即可。

#导入日志模块
import logging
#日志模块配置(级别,格式为:时间-级别-消息)
logging.basicConfig(filename="C:\\runlog.txt",level=logging.ERROR,format="%(asctime)s-%(levelname)s:%(message)s")
#输出日志
logging.error("debug日志")
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
8天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
60 5
|
1月前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
2月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
477 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
2月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
177 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
PyTorch 算法框架/工具
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
本文介绍了PyTorch中的F.softmax()和F.log_softmax()函数的语法、参数和使用示例,解释了它们在进行归一化处理时的作用和区别。
515 1
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
|
2月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
188 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
2月前
|
Python
python读写操作excel日志
主要是读写操作,创建表格
69 2
|
2月前
|
Python Windows
python知识点100篇系列(24)- 简单强大的日志记录器loguru
【10月更文挑战第11天】Loguru 是一个功能强大的日志记录库,支持日志滚动、压缩、定时删除、高亮和告警等功能。安装简单,使用方便,可通过 `pip install loguru` 快速安装。支持将日志输出到终端或文件,并提供丰富的配置选项,如按时间或大小滚动日志、压缩日志文件等。还支持与邮件通知模块结合,实现邮件告警功能。
python知识点100篇系列(24)- 简单强大的日志记录器loguru
|
2月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
73 1
|
2月前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
124 1