日志是程序不可或缺的一部分。它可以记录程序的运行情况,帮助我们更便捷地发现问题,而python中的logging日志模块给我们提供了这个机会。

logging给我们提供了五种函数用来输出日志:debug()、info()、waring()、error()和critical()

这五种函数的使用场景:

DEBUG:详细信息,典型地调试问题时会感兴趣。

INFO: 证明事情按预期工作。

WARNING: 表明发生了一些意外,或者不久的将来会发生问题(如‘磁盘满了’)。软件还是在正常工作。

ERROR:由于更严重的问题,软件已不能执行一些功能了。

CRITICAL:严重错误,表明软件已不能继续运行了。

这篇文章只介绍logging的简单使用,下一篇文章将会介绍设置复杂的配置,以便满足更多的需求

简单配置

简单的配置适用于小的脚本文件中或者是小的项目中

首先我们利用了logging.basicConfig()函数设置logging。下面介绍其中的属性

level,设置需要捕获的日志级别,如果日志消息的级别高于设定的值则捕获该日志消息把它打印到屏幕上或者存储到文件中,如果低于该级别则不捕获

format,用于设置日志消息的格式

Attribute Format Description

asctime %(asctime)s 将日志的时间构造成可读的形式,默认情况下是‘2016-02-08 12:00:00,123’精确到毫秒

filename %(filename)s 包含path的文件名

funcName %(funcName)s 由哪个function发出的log

levelname %(levelname)s 日志的最终等级(被filter修改后的)

message %(message)s 日志信息

lineno %(lineno)d 当前日志的行号

pathname %(pathname)s 完整路径

process %(process)s 当前进程

thread %(thread)s 当前线程

filemode:设置记录日志的方式,'w'将会重新改写整个日志文件,'a'将会在原来的文件中追加内容

3. datefmt:可以设置日志消息中时间的显示格式

4. filename:设置将日志记录到那个文件当中,如果不设置这个值,日志将会打印到屏幕上

5. filemode:设置将日志写入文件的方式,'a'是追加到文件中,'w'是重写文件

注意:上面配置的属性都是可选的,他们都是有默认值的

分析代码

在代码中我们将日志以追加的方式写到同目录中的my.log中,并设置了消息的格式和处理消息的级别是INFO,所以只有

INFO和比INFO级别更高的日志消息我们才会记录捕获

我们设置了两个函数test1、test2,在test1中

test1

我们可以在日志消息中引用变量,我们看看运行的效果

my.log

可以看到只在my.log文件中写入了info和warning消息,而程序中的debug消息并没有写入,这是因为debug的级别小于info。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

好啦,今天的分享到这里就结束了,如果需要更多的技术性文章,可以直接访问马哥教育官网欧!

python中的logging日志模块的更多相关文章

  1. python中的第三方日志模块logging

    基本上每个系统都有自己的日志系统,可以使自己写的,也可以是第三方的.下面来简单介绍一下python中第三方的日志模块,入手还是比较简单的,但是也很容易给自己埋雷. 下面是我参考的资料链接 入手demo ...

  2. Python入门之logging日志模块以及多进程日志

    本篇文章主要对 python logging 的介绍加深理解.更主要是 讨论在多进程环境下如何使用logging 来输出日志, 如何安全地切分日志文件. 1. logging日志模块介绍 python ...

  3. python中的logging日志

    logging使用 import logging import os from logging import handlers from constants.constants import Cons ...

  4. Python 中 logging 日志模块在多进程环境下的使用

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...

  5. Python 中 对logging 模块进行封装,记录bug日志、日志等级

    是程序产生的日志 程序员自定义设置的 收集器和渠道级别那个高就以那个级别输出 日志和报告的作用: 报告的重点在于执行结果(执行成功失败,多少用例覆盖),返回结果 日志的重点在执行过程当中,异常点,哪里 ...

  6. python 自动化之路 logging日志模块

    logging 日志模块 http://python.usyiyi.cn/python_278/library/logging.html 中文官方http://blog.csdn.net/zyz511 ...

  7. Python logging(日志)模块

    python日志模块 内容简介 1.日志相关概念 2.logging模块简介 3.logging模块函数使用 4.logging模块日志流处理流程 5.logging模块组件使用 6.logging配 ...

  8. Python中的logging模块就这么用

    Python中的logging模块就这么用 1.日志日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICALDEBUG:详细的信息,通常只出现在诊断问题 ...

  9. logging 日志模块学习

    logging 日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪,所以还是灰常重要滴,下面我就来从入门到放弃的系统学习一下日志既可以在屏幕上显示,又可以在文件中体现. ...

随机推荐

  1. 如何确定垃圾?JVM GC ?

    如何确定垃圾? 正文 如何确定垃圾? 前面已经提到 JVM 可以采用 引用计数法 与 可达性分析算法 来确定需要回收的垃圾,我们来具体看一下这两种算法: 引用计数法 该方法实现为:给每个对象添加一个引 ...

  2. 在ensp上利用单臂路由实验VLAN间路由

    我们为什么要设置单臂路由? 因为我们要解决不同vlan,不同网络的PC机间的通信问题~ 那它为啥叫单臂路由嘞? 单臂路由的原理时通过一台路由器,使vlan间互通数据通过路由器进行三层转发,如果在路由器 ...

  3. 悬架的灵魂——K&C特性

    静止便是死亡,只有运动才能敲开永生的大门     —  泰戈尔 KC特性是车辆操控稳定性的直接影响者!可以分为 K ( Kinematic) 特性和 C( Compliance) 特性: K 特性即悬 ...

  4. 【vim小记】自动保存配置

    刚接触vim会发现有很多不习惯,其中,不能自动保存当前配置,每次退出要重新配置,很麻烦,好在vim早就为我们想到这些,在看手册的时候,发现里面有session,  这是用户手册的介绍: “会话保存所有 ...

  5. 转发:for /f命令之—Delims和Tokens用法&总结

    在For命令语踞饽参数F中,最难理解的就是Delims和Tokens两个选项,本文简单的做一个比较和总拮.“For /f”常用来解析文本,读取字符串.分工上,delims负责切分字符串,而tokens ...

  6. python 多进程和协程配合使用

    一.需求分析 有一批key已经写入到3个txt文件中,每一个txt文件有30万行记录.现在需要读取这些txt文件,判断key是否在数据仓库中.(redis或者mysql) 为空的记录,需要写入到日志文 ...

  7. git学习笔记 ---管理修改

    现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行,这就是一个修改 ...

  8. 微软.NET CORE 3.0 预览版 7 发布:大幅减少 SDK 空间大小

    据悉,这个预览版是 .Net Core 3 中重要的版本,可以视为原计划在 7 月发布的 RC 版本 (引自微软 .NET Core 首席 Program Manager Richard 先生原话), ...

  9. Java 并发框架Disruptor(七)

    Disruptor VS BlockingQueue的压测对比: import java.util.concurrent.ArrayBlockingQueue; public class ArrayB ...

  10. .net core web API使用Identity Server4 身份验证

    一.新建一个.net core web项目作为Identity server 4验证服务. 选择更改身份验证,然后再弹出的对话框里面选择个人用户账户. nuget 安装Identity server相 ...