首页 > 编程语言 >Python入门系列20-日志logging模块

Python入门系列20-日志logging模块

时间:2023-10-21 22:32:04浏览次数:50  
标签:输出 logging Python warn error 20 日志 级别

一、概念

日志是一种可以追踪某些软件运行时所发生事件的方法。软件开发人员可以在他们的代码中调用日志记录相关的方法来表明发生了某些事件,通过一个描述性的消息来描述这个事件,该消息能够可选的包含可变数据。而事件有重要性的概念,重要性被称为严重性级别。

二、日志的作用

通过记录和分析日志可以了解一个系统或软件程序运行情况是否正常,也可以在应用程序出现故障时快速定位问题。一般可以分为三种:1.程序调试 2.了解软件程序运行情况是否支持 3.软件程序运行故障分析和问题定位。

三、日志的级别

日志级别有很多种,我们一般常用的有4种,日志级别右低到高分别为:DEBUG-INFO-WARN-ERROR。

DEBUG:(调试):开发调试日志。一般来说,在系统实际运行过程中,不会输出该级别的日志。因此,开发人员可以打印任何自己觉得有利于了解系统运行状态的东东。不过很多场景下,过多的DEBUG日志,并不是好事,建议是按照业务逻辑的走向打印。打个比方,打印日志就像读书时划重点,如果导出都是重点,也就失去了重点。

INFO(通知):INFO日志级别主要用于记录系统运行状态等关联信息。该日志级别,常用于反馈系统当前状态给最终用户。所以,在这里输出的信息,应该对最终用户具有实际意义,也就是最终用户要能够看得明白是什么意思才行。

WARN(警告):WARN日志常用来表示系统模块发生问题,但并不影响系统运行。 此时,进行一些修复性的工作,还能把系统恢复到正常的状态。

ERROR(错误):此信息输出后,主体系统核心模块正常工作,需要修复才能正常工作。 就是说可以进行一些修复性的工作,但无法确定系统会正常的工作下去,系统在以后的某个阶段,很可能会因为当前的这个问题,导致一个无法修复的错误(例如宕机),但也可能一直工作到停止也不出现严重问题。

四、日志的内容

一条日志信息对应的是一个事件的发生,而一个事件通常需要包括以下内容:

1.发生时间

2.发生位置

3.严重长度(日志级别)

4.日志内容

五、日志的使用

导入:

import logging

logging使用很简单,使用basicConfig()方法就能满足基本的使用需要,如果方法没有传入参数,会根据默认配置创建日志对象。

可选参数如下图所示:

参数名称

参数描述

filename

日志输出到文件的文件名

filemode

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

format

日志输出的格式

datefat

日志附带日期时间的格式

level

设置日志输出级别

指定日志输出级别:

import logging

# 默认的日志输出级别为warn 小于这个日志级别的不会输出
logging.debug('debug')
logging.info('info')
logging.warning('warn')
logging.error('error')

输出:

WARNING:root:warn
ERROR:root:error

使用baseconfig()来指定日志输出级别:

import logging

# 默认的日志输出级别为warn 小于这个日志级别的不会输出

# 指定日志输出级别
logging.basicConfig(level=logging.DEBUG)
logging.debug('debug')
logging.info('info')
logging.warning('warn')
logging.error('error')

输出:

DEBUG:root:debug
INFO:root:info
WARNING:root:warn
ERROR:root:error

输出日志到文件:

import logging

# 默认的日志输出级别为warn 小于这个日志级别的不会输出

# 指定日志输出级别
logging.basicConfig(level=logging.DEBUG,filename='test.log')
logging.debug('debug')
logging.info('info')
logging.warning('warn')
logging.error('error')

test.log文件内容如下:

Python入门系列20-日志logging模块_日志级别

添加重要信息:

asctime:当前时间

levelname:输出日志级别

filename:文件名称

lineno:报错文件行号

message:输出信息

代码实例如下:

import logging

# 默认的日志输出级别为warn 小于这个日志级别的不会输出

# 指定日志输出级别
logging.basicConfig(level=logging.DEBUG, filename='test.log', filemode='w', datefmt='%Y-%m-%d %H:%M:%S',
                    format="%(asctime)s %(name)s:%(levelname)s:%(message)s|%(filename)s:%(lineno)s")
logging.debug('debug')
logging.info('info')
logging.warning('warn')
logging.error('error')

输出:

Python入门系列20-日志logging模块_日志级别_02

标签:输出,logging,Python,warn,error,20,日志,级别
From: https://blog.51cto.com/u_13312531/7969915

相关文章

  • CSP2023又寄
    推销丑死了的你谷博客\(\texttt{Day-?}\)初赛,轻轻松松寄掉,惊险S组踩线过。\(\texttt{Day-1}\)赛前动员,见到了老K/se敲了敲板子,然而屁用没有。\(\texttt{Day0}\)J组T1傻逼题,秒了数学题,打个暴力浅浅拿\(90\)分跑路。T2傻逼题,秒了。贪心,前缀最小值维护就行了。......
  • CSP 2023 游记
    省流:把#defineintlonglong写在快读下面,荣获全场最佳小丑奖。Day-1手速大赛很有趣,但有人不认识Aigony我不说是谁。Day0睡大觉,给小朋友讲考场注意事项。晚上试图向学妹传教vscode,但被反向传教了一顿code::blocks。怎么回事呢(做出一副努力学习的样子,但是我也很想玩......
  • P9752 [CSP-S 2023] 密码锁 题解
    分析最水S组T1。每次可以转动一个拨圈,或者转动相邻的两个拨圈,且幅度相同。那么就有一个简单粗暴的思路,枚举修改的方案,用vector来储存修改后的方案,存到map当中,当然也可以转换为数字存进去。切记要用两个map来储存,一个存方案,下文称为\(mp\),一个存这个方案在这个状态下......
  • 【ISCC2023线下】MISC1-帮帮小明writeup
    考点流量分析,TLS,二维码修复解题步骤首先速览一遍帮帮小明.pcapng,发现里面的协议有IMAP和TLS,这部分可能有线索打开统计->会话,TCP栏有两个终点为25端口的地址,追踪流量,是两次对话发现一个压缩包保存,发现有密码,里面是一个加密后的文件mosaic.bmp,用zipcenop排除了伪加密的可能......
  • CSP-S2023游?寄!
    赛前从学校坐校车去考点,发现qyb穿的衣服上面有个“璃月”,原来那次THUSC看到的是他啊,原批真可怕。老师搞错了解压密码,搞了二十分钟用u盘在每个人电脑上拷了一份题目,延时20min。t1开场一眼秒。简单题,枚举,依据题意判合法性即可。t2看了遍所有题后,感觉t2最简单。赛时前半小时推......
  • Python入门指南
    Python入门指南Python中的“文本”代码用计算机程序设计语言写成的,可以被计算机执行的文本称为代码。输入从外界将数据传递给程序称为输入,即通过输入设备(例如:鼠标、键盘、和摄像头等)向计算机输入数据和信息。输出程序将数据传递给外界称为输出,即把计算机处理结果(例如:屏幕显......
  • 2023-10-21:用go语言,一共有三个服务A、B、C,网络延时分别为a、b、c 并且一定有:1 <= a <= b
    2023-10-21:用go语言,一共有三个服务A、B、C,网络延时分别为a、b、c并且一定有:1<=a<=b<=c<=10^9但是具体的延时数字丢失了,只有单次调用的时间一次调用不可能重复使用相同的服务,一次调用可能使用了三个服务中的某1个、某2个或者全部3个服务比如一个调用的时间,T=100100的延时......
  • an软件-中文版An下载 Adobe Animate 2022软件激活版
    AdobeAnimate支持多平台输出,可以将动画导出为HTML5、视频、SWF和AIR等格式,以适应不同的应用环境和设备。软件地址:看置顶帖物竞天择,适者生存,这是亘古不变的道理。面对生活中的困难,人生路上的挫折,我们只有足够坚强,足够勇敢,足够强大,才能战胜这一切。人活着要明白,你所有的负面,都源于你......
  • MDT2013自动化部署Windows系统-启动映像添加
    添加启动映像:1:打开windows部署服务控制台,右键“启动映像”,选择“添加启动映像”:2:选择启动映像文件存放位置:MDT控制台更新的启动映像存放位置:Deploymentshare\Boot\目录下:3、输入映像名称和相应说明:4、确认选定映像摘要:5、完成启动映像添加:6、完成后视图如下:接下来为大家介绍的是WDS......
  • CSP-S2023复赛游寄
    \(14:30\sim15:00\)读题并想了想T2的正解、T3实现的部分细节\(15:00\sim15:30\)T1红/橙,T2对每个\(i\)计算最小的\(j\)使得\([i,j]\)合法即可。写了T1正解、T2两个暴力+正解,拍了几个特殊数据\(15:30\sim17:30\)T3,可能挂\(17:30\sim18:10\)T4想到二分+贪心,推了下......