一、logging模块

1、功能

logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:

  • 可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;

  • print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出。

2、日志级别以及修改默认级别

DEBUG  最详细的日志信息,典型应用场景是 问题诊断

INFO   信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作

WARNING 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的

ERROR  由于一个更严重的问题导致某些功能不能正常运行时记录的信息

CRITICAL 当发生严重错误,导致应用程序不能继续运行时记录的信息

默认日志级别:WARNING

修改默认级别:basicConfig

logging.basicConfig(level=logging.DEBUG,
format="%(asctime)s %(name)s %(levelname)s %(message)s",
datefmt = '%Y-%m-%d %H:%M:%S %a'
)    #修改日志级别为debug
logging.debug("msg1")    #2020-01-06 23:12:04 Mon root DEBUG msg1
logging.info("msg2")   #2020-01-06 23:12:04 Mon root INFO msg2
logging.warning("msg3")   #2020-01-06 23:12:04 Mon root WARNING msg3
logging.error("msg4")   #2020-01-06 23:12:04 Mon root ERROR msg4
logging.critical("msg5")   #2020-01-06 23:12:04 Mon root CRITICAL msg5

basicConfig()方法参数详解:

 3、日志输出方式

简单使用:

import logging
logging.basicConfig(level=logging.DEBUG,
format="%(asctime)s %(name)s %(levelname)s %(message)s",
datefmt = '%Y-%m-%d %H:%M:%S %a'
) #修改日志级别为debug,设置打印格式内容
logging.debug("msg1") #2020-01-06 23:12:04 Mon root DEBUG msg1
logging.info("msg2") #2020-01-06 23:12:04 Mon root INFO msg2
logging.warning("msg3") #2020-01-06 23:12:04 Mon root WARNING msg3
logging.error("msg4") #2020-01-06 23:12:04 Mon root ERROR msg4
logging.critical("msg5") #2020-01-06 23:12:04 Mon root CRITICAL msg5

2、日志流处理模式

import logging
logger=logging.getLogger()
#创建handler,用于输出到日志文件
fh=logging.FileHandler('test.log')
#创建handler,用于输出到控制台
ch=logging.StreamHandler()
#设置一种打印格式
formatter=logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s')
#运用对应的格式
fh.setFormatter(formatter)
ch.setFormatter(formatter)
#应用对应的handler
logger.addHandler(fh)
logger.addHandler(ch)
logger.warning('lsss') #2020-01-06 23:32:44,185 root WARNING lsss

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

  1. logging 日志模块学习

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

  2. logging日志模块

    为什么要做日志: 审计跟踪:但错误发生时,你需要清除知道该如何处理,通过对日志跟踪,你可以获取该错误发生的具体环境,你需要确切知道什么是什么引起该错误,什么对该错误不会造成影响. 跟踪应用的警告和错误 ...

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

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

  4. day31 logging 日志模块

    # logging 日志模块 ****** # 记录用户行为或者代码执行过程 # print 来回注释比较麻烦的 # logging # 我能够“一键”控制 # 排错的时候需要打印很多细节来帮助我排错 ...

  5. logging日志模块的使用

    logging日志模块的使用 logging模块中有5个日志级别: debug 10 info 20 warning 30 error 40 critical 50 通常使用日志模块,是用字典进行配置 ...

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

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

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

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

  8. Python logging(日志)模块

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

  9. 约束、自定义异常、hashlib模块、logging日志模块

    一.约束(重要***) 1.首先我们来说一下java和c#中的一些知识,学过java的人应该知道,java中除了有类和对象之外,还有接口类型,java规定,接口中不允许在方法内部写代码,只能约束继承它 ...

随机推荐

  1. AGC014-F Strange Sorting

    题意 \(n\)-排列,反复进行:将序列中为前缀最大值的数全部移动到序列末(两种数不改变相对位置),问经过多少次后第一次全部升序排列 做法 定义:用high表示为前缀最大值,low则反之 考虑忽略\( ...

  2. Spring中 @Autowired注解与J2EE@Resource注解的区别

    在开发中经常使用到@Autowired和@Resource进行装配. 不禁好奇这两个注解的差异在何处??? 相同点: @Resource的作用相当于@Autowired,均可标注在字段或属性的sett ...

  3. 【剑指Offer】62、序列化二叉树

    题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存.序列化可以基于先序. ...

  4. 框架里增加.env文件的作用

    在实际开发中我们常常遇到这样的问题,就是开发地点不固定,这就造成了我们需要频繁的更改数据库配置,给开发工作造成了麻烦,.env环境文件的出现解决了这个麻烦,我们只需要在不同的工作地点配置好.env文件 ...

  5. js中div显示和隐藏钮为什么页面总是跳一下到最上面

    <div class="menu_left"> <ul > <li id="t1" style="background- ...

  6. PHP Strings

    <?php //1. how to use mail function //create short variable names $name=$_POST['name']; $email=$_ ...

  7. 关于Web服务器时间修改后遗症

    在开发过程中,遇到一个问题,在本地测试成功,发布服务器后,总是 莫名的登录失效. 原因,服务器端代码设置了cookie的过期时间为1天后,而服务器的时间与浏览器端机器时间不一致.导致浏览器判断 coo ...

  8. LeetCode:27 移除元素

    给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

  9. 887. 求组合数 III(模板 卢卡斯定理)

    a,b都非常大,但是p较小 前边两种方法都会超时的  N^2 和NlongN  可以用卢卡斯定理  P*longN*longP     定义: 代码: import java.util.Scanner ...

  10. Selenium3+python自动化016-多线程

    1.进程 什么是进程? 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基 ...