前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Python】使用logging打日志

【Python】使用logging打日志

作者头像
keloli
发布于 2018-09-10 09:49:31
发布于 2018-09-10 09:49:31
98100
代码可运行
举报
运行总次数:0
代码可运行

logging介绍:

我们经常使用print()函数打印一些信息到控制台,方便的查看结果和一些调试信息。print()确实是方便和易用,但是也有一些缺点,比如打印出来的信息不能保存,再次运行程序时,之前打印出来的结果就被清空了。 Python中内置一个日志模块——logging,通过它我们就可以很方便的在Python代码中记录简单的程序日志。

logging使用:

logging模块将日志分为了五个等级(从低到高):

  • DEBUG:调试信息,通常在诊断问题的时候用得着;
  • INFO:普通信息,确认程序安装预期运行;
  • WARNING:警告信息,表示发生了意想不到的事情,或者指示接下来可能会出现一些问题,但是程序还是继续运行;
  • ERROR:错误信息,程序运行中出现了一些问题,一些功能没有执行;
  • CRITICAL:危险信息,一个严重的错误,导致程序无法继续运行。 上述的五个等级的日志信息分别使用:logging模块的debug()、info()、warning()、error()、critical()方法来实现。 默认情况下,logging使用的日志级别是warning,这表示只有在这个级别及其以上级别的日志信息才会被记录,所以默认情况下debug信息和info信息都不会被显示出来。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 测试logging的等级
import logging
logging.info("打印信息")
logging.warning("警告信息")
logging.error("出现了错误")

# 控制台输出:
WARNING:root:警告信息
ERROR:root:出现了错误
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 我们使用logging模块的basicConfig()方法,修改一个日志输出等级为INFO
import logging
logging.basicConfig(level=logging.INFO)
logging.error("出现了错误")
logging.info("打印信息")
logging.warning("警告信息")

# 控制台输出:
INFO:root:打印信息
WARNING:root:警告信息
ERROR:root:出现了错误
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 记录的日志信息除了打印到控制台之外,我们还能够将其写入文件中。同样是使用basicConfig()方法进行设置
import logging
logging.basicConfig(level=logging.INFO,filename='test.log')
logging.error("出现了错误")
logging.info("打印信息")
logging.warning("警告信息")

# 执行后会将以上信息写到“test.log”文件下,重复执行会将信息追加在原来的文件后
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 如果希望每次log都覆盖原来的log,就在basicConfig()方法中使用filemode参数进行设置
import logging
logging.basicConfig(level=logging.INFO,filename='test.log',filemode='w')
logging.error("出现了错误")
logging.info("打印信息")
logging.warning("警告信息")

# 执行后本次程序输出的log将会将原来的log内容覆盖
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 如果我们想改变日志消息的格式呢,使用basicConfig()方法,利用其format参数进行设置
import logging
logging.basicConfig(level=logging.INFO,filename='test.log',format="%(levelname)s:%(message)s")
logging.error("出现了错误")
logging.info("打印信息")
logging.warning("警告信息")

# 这次long输出的信息就不包含'root'

# logging支持的格式还不止这两种,我们来看看:
%(asctime)s:日志创建时的普通时间;
%(created)f:日志创建时的时间(由time.time()返回);
%(filename)s:文件名;
%(funcName)s:调用日志记录的函数;
%(levelname)s:日志消息的文本级别;
%(levelno)s:日志消息的数字级别;
%(lineno)d:调用日志消息的行号;
%(msecs)d:创建时间的毫秒部分;
%(message)s:日志消息;
%(name)s:日志器的名称;
%(pathname)s:记录日志的源文件的路径名;
%(process)d:进程ID%(processName)s:进程名;
%(thread)d:线程ID%(threadName)s:线程名;
%(relativeCreated)d:创建日志记录的时间(以毫秒为单位)

# 借助于这些格式,我们可以自定义日志记录,比如显示时间:
import logging
logging.basicConfig(level=logging.INFO,filename='test.log',format="%(levelname)s:%(asctime)s:%(message)s")
logging.error("出现了错误")
logging.info("打印信息")
logging.warning("警告信息")

参考资料:

https://zhuanlan.zhihu.com/p/31893724 https://zhuanlan.zhihu.com/p/32043593

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.02.14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python3-logging模块
因为工作需要用到关于日志的,最近一直都在看关于日志模块的东西,百度了很多文章,可惜都是看的让人一头雾水,最后运气不错,找到一篇很详细的文章。传送门:https://www.cnblogs.com/testdjt/p/7834856.html
润森
2019/10/24
7430
【测试开发】python系列教程:logging日志模块
在我们正常的开发中,总能想要打印一些信息,或者打印日志,我们都是用的print,但是在小规模的程序开发中是可以来用的,也便于调试,但是对于大点的项目,我们想要保存执行过程中的日志,用print来打印来说就不能满足了。我们用loggin模块可以来记录,以排查程序在某一个时候崩溃的具体原因,以便及时定位Bug进行抢救。
雷子
2023/08/21
2380
【测试开发】python系列教程:logging日志模块
Python 日志模块logging
logging日志文件写入默认是gbk编码格式的,所以在查看时需要使用gbk的解码方式打开。
py3study
2020/01/17
6490
python3--模块configparser,logging,collections
该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)
py3study
2018/08/02
5890
Python 编程 | 连载 22 - logging 与 random 模块
程序中的日志可以记录程序的行为,帮助排查程序 Bug,日志的等级分为 debug、info、warnning、error、critical,日志等级依次提高。
RiemannHypothesis
2022/09/26
2450
Python 编程 | 连载 22 - logging 与 random 模块
Python 内置模块:logging 官方基础教程翻译
Logging 即是追踪一些软件运行时发生的事件。软件的开发人员在代码中增加了 logging 的调用用来确定某些事件的发生。事件通过一些描述性消息描述,这些消息可能会包含一些变量数据(不同的事件发生时有不同的数据)。开发者同样考虑事件的重要性,这个重要性也可以称之为级别或严重性。
用户7685359
2020/08/24
6510
Python 内置模块:logging 官方基础教程翻译
Python日志系统logging使用入门
Python标准库提供了一个日志记录系统,可以很方便的在python项目中添加日志记录。本文将详细介绍如何使用python的 logging 模块来记录日志。
用户10002156
2023/08/07
2210
Python日志系统logging使用入门
Python日志库logging总结-可能是目前为止将logging库总结的最好的一篇文章
在部署项目时,不可能直接将所有的信息都输出到控制台中,我们可以将这些信息记录到日志文件中,这样不仅方便我们查看程序运行时的情况,也可以在项目出现故障时根据运行时产生的日志快速定位问题出现的位置。
Wizey
2018/10/15
41.2K1
轻松搞定Python日志记录:logging模块详解与实战
在开发和维护软件时,日志记录是一个非常重要的环节。它可以帮助开发者调试代码、监控应用运行状态、记录系统行为等。Python的logging模块提供了一个灵活且强大的日志记录功能,能够满足各种日志记录需求。本文将详细介绍logging模块的使用,包括基本概念、配置方法、日志级别、日志处理器和格式化器的使用,以及实际应用案例。
sergiojune
2024/08/02
9050
轻松搞定Python日志记录:logging模块详解与实战
Python日志模块logging的使用
为什么只输出了 warning, error 和 critical 的结果,因为 logging 模块默认使用 warning 日志级别,就是只有 warning 及以上日志等级才会显示。
忆想不到的晖
2021/12/06
1.1K0
Python日志模块logging的使用
Python - 使用logging模块管理日志文件
logging是很友好的python日志管理包,轻便好用,本文介绍logging使用方法。 使用步骤 在程序中引入包: import logging 配置日志设置 logging.basicConfig( # 日志级别,logging.DEBUG,logging.ERROR level = logging.INFO, # 日志格式: 时间、代码所在文件名、代码行号、日志级别名字、日志信息 format = '%(asctime)s %(filena
为为为什么
2022/08/04
3090
Python日志logging模块使用详解
每个语言都会有自己的日志模块,Python也不例外。通常情况下当需要使用到日志的时候, 一般都是匆匆查找下资料,按照步骤进行下配置就是完事了,不太会去总结日志模块的使用方式。 经常过一段时间新项目需要用的时候,还是需要去网上搜索下配置方式。所以今天就为了日后的使用方便而进行的内容整理。
上帝De助手
2019/09/17
1.1K0
Python日志logging模块使用详解
Python: Logging模块实例详解
Logging 模块 import logging Quick Start 导入模块后直接logging.waring(),logging.error()简单粗暴地调用即可。默认的level是DEBUG,所以warning会打印出信息,info级别更低,不会输出信息。如果你不知道level等参数的意义请后面解释,淡定,继续往下看。 如果不特别配置,logging模块将日志打印到屏幕上(stdout)。 #!/usr/local/bin/python # -*- coding:utf-8 -*- import
用户2183996
2018/06/21
9500
Python 使用 logging模块打印日志
开发过程中出现bug是必不可免的,你会怎样debug?从第1行代码开始看么?还是有个文件里面记录着哪里错了更方便呢!!!log日志
Devops海洋的渔夫
2019/05/31
1.3K0
loggin(日志模块)
普通情况下,在控制台显示输出 print() 报告正常程序操作过程中发生的事件 logging.info()(或者更详细的logging.debug()) 发出有关特定事件的警告 warnings.warn()或者logging.warning() 报告错误 弹出异常 在不引发异常的情况下报告错误 logging.error(), logging.exception()或者logging.critical()
py3study
2020/01/17
7410
Python模块知识5:日志logging
logging模块提供了通用的日志系统,可以采用不同的方式记录日志,比如文件,HTTP、GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式; 日志分不同提醒级别,级别顺序为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,可以自己定义日志级别。 级别越高打印的日志等级越少,反之亦然。 debug: 打印全部的日志(notset等同于debug) info:打印info、warning、error、critical级别的日志 w
企鹅号小编
2018/01/11
7960
Python模块知识5:日志logging
Python logging模块
logging模块是Python的一个标准库模块,开发过程中,可以通过该模块,灵活的完成日志的记录。
py3study
2020/01/09
4440
django日志logging的配置以及处理
日志是一种可以追踪某些软件运行时所发生事件的方法。软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情。一个事件可以用一个可包含可选变量数据的消息来描述。此外,事件也有重要性的概念,这个重要性也可以被称为严重性级别(level)。
菲宇
2019/06/13
2.4K0
django日志logging的配置以及处理
关于python logging 模块
在日志中使用记录器(Logger)可以帮助我们更好地控制日志输出的格式和位置。可以通过以下命令创建一个名为my_logger的记录器:
dbdocker
2024/02/01
1420
【1】如何优雅的记录日志? logging
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
云雀叫了一整天
2019/09/29
9740
相关推荐
Python3-logging模块
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验