Python logger模块

1 logging模块简介

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

  1. 可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;
  2. print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出;
Logger从来不直接实例化,经常通过logging模块级方法(Module-Level  Function)logging.getLogger(name)来获得,其中如果name不给定就用root。名字是以点号分割的命名方式命名的(a.b.c)。对同一个名字的多个调用logging.getLogger()方法会返回同一个logger对象。这种命名方式里面,后面的loggers是前面logger的子logger,自动继承父loggers的log信息,正因为此,没有必要把一个应用的所有logger都配置一遍,只要把顶层的logger配置好了,然后子logger根据需要继承就行了。
logging.Logger对象扮演了三重角色:
首先,它暴露给应用几个方法以便应用可以在运行时写log.
其次,Logger对象按照log信息的严重程度或者根据filter对象来决定如何处理log信息(默认的过滤功能).
最后,logger还负责把log信息传送给相关的handlers.

2 logging模块使用

2.1 基本使用

配置logging基本的设置,然后在控制台输出日志,

import logging
logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something maybe fail.")
logger.info("Finish")

运行时,控制台输出,

1 2016-10-09 19:11:19,434 - __main__ - INFO - Start print log
2 2016-10-09 19:11:19,434 - __main__ - WARNING - Something maybe fail.
3 2016-10-09 19:11:19,434 - __main__ - INFO - Finish

logging中可以选择很多消息级别,如:DEBUG < INFO < WARNING < ERROR < CRITICAL,通过赋予logger或者handler不同的级别,开发者就可以只输出错误信息到特定的记录文件,或者在调试时只记录调试信息。

将logger的级别改为DEBUG,再观察一下输出结果

logging.basicConfig(level = logging.DEBUG,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')

从输出结果可以看到,输出了debug的日志记录

2016-10-09 19:12:08,289 - __main__ - INFO - Start print log
2016-10-09 19:12:08,289 - __main__ - DEBUG - Do something
2016-10-09 19:12:08,289 - __main__ - WARNING - Something maybe fail.
2016-10-09 19:12:08,289 - __main__ - INFO - Finish

 

转载于:https://www.cnblogs.com/yahengwang/p/11314695.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

离合器半联动

半联动即离合器半联动。 离合器半联动是指离合器不稳定联接的工作状态&#xff0c;即驾驶员踩离合器踏板&#xff0c;使离合器压板压力逐步减小&#xff0c;造成主动盘与从动盘之间处于边转边滑的状态。在场内驾驶考试时&#xff0c;驾驶员由于操作不熟练&#xff0c;不能在要求…

学习 cookie session 正向代理和反向代理的区别

1.学习网址&#xff1a;https://www.cnblogs.com/wxinyu/p/9154178.html 1.1 当我打开一个浏览器的时候&#xff0c;客户端有session id区分用户, 服务器有了session的浏览记录&#xff08;浏览器编号的txt&#xff09;.多个页面则多个session&#xff0c; 1.2 token就是令牌…

JS 中 Map 与 JSON 转换

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. JSON数据 转 字符串 JSON.stringify(jsondata) 2. 字符串 转 JSON JSON.parse(str) 3. Map 转 JSON&#xff0c;需要先将Map转化…

axios 发 post 请求,后端接收不到参数的解决方案

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 问题场景 场景很简单&#xff0c;就是一个正常 axios post 请求&#xff1a; axios({headers: {deviceCode: A95ZEF1-47B5-AC90BF3},me…

nginx+keepalived高可用性负载均衡

一、前言nginx进程基于于MasterSlave(worker)多进程模型&#xff0c;自 身具有非常稳定的子进程管理功能。在Master进程分配模式下&#xff0c;Master进程永远不进行业务处理&#xff0c;只是进行任务分发&#xff0c;从而达到Master进程的存 活高可靠性&#xff0c;Slave(work…

白发变黑有诀窍

白发变黑发的有效方法 1、要远离焦虑&#xff1a; 如果天天的忧愁、烦恼、焦虑&#xff0c;则可能引起脱发&#xff0c;焦虑压抑的时间越长&#xff0c;脱发就会迅速的加快。不管工作如何忙碌&#xff0c;建议女性保持适当的运动量以及愉快的心情&#xff0c;头发也会富有光…

经典监督学习方法

生成算法尝试去找这个数据到底是怎么生成的&#xff08;产生的&#xff09;&#xff0c;然后再对一个信号进行分类。基于你的生成假设&#xff0c;哪个类别最有可能产生这个信号&#xff0c;这个信号就属于那个类别。 判别模型不关心数据是怎么生成的&#xff0c;它只关心信号之…

Map 集合循环、遍历的 四 种方式

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 package cn.jdbc.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry;/…

Ubuntu版本更新一路走来:朕就是这样的汉子

今日&#xff0c;Ubuntu发布了最新的14.04版本。当然&#xff0c;业界对新版Ubuntu褒贬不一&#xff0c;为此我们回顾了Ubuntu版本更新历史上几个比较有代表性的版本&#xff0c;看看Ubuntu这一路走来究竟有什么变化。Ubuntu刚刚发布了最新的14.04版本&#xff0c;围绕这一版本…

「2019纪中集训Day7」解题报告

T1、小L的数列 给一个数列 \(\{f_i\}\)&#xff1a;\[ f_i \prod_{j 1}^{j \leq k} f_{i - j}^{b_j}, \ (i > k) \] 现在给定数列的前 \(k \ (k \le 200)\) 项及 \({b_i}\)&#xff0c;求第 \(n\) 项。 \(Sol\)&#xff1a; 注意到数列的任意一项 \(f_i \ (i > k)\)&am…

我想拥有一座庄园:“ 暮春三月,江南草长,杂花生树,群莺乱飞 ... ”

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 // 或许这个心愿是缘于少时读的诗&#xff1a;其中大多是对于自然的期许和神往 ... // 亦或许是想太多的人大多都有这样的心愿 ... 我想…

安装Ubuntu 14.04后要做的5件事情

Ubuntu最新版本Ubuntu 14.04已经发布&#xff0c;它是一个长期支持版本&#xff08;LTS&#xff09;&#xff0c;提供软件包和安全更新的服务周期为5年。本文为大家简单介绍了Ubuntu 14.04版本新特性和安装Ubuntu 14.04后需要做的5件事情&#xff0c;以供参考。Ubuntu目前是世界…

昨天,我的大学学习[2]

昨天&#xff0c;我的大学学习[2] 曾毅 谁能改变我的命运[大学二年级] 如果说大学一年级的时候是一种被动学习状态&#xff0c;对计算机科学不能揽其全貌&#xff0c;那么进入大学二年级以后的学习便是比较有针对性的了&#xff0c;但这种转变并非偶然&#xff0c;同样也是经过…

VUE 项目 去除 input 框值 所有空格、vue 组件去除空格、input 去除空格

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.以下所有方法 我都试过&#xff1a;不行。 str.trim(); //去掉首尾空格 str.replace(" ",""); //去除所有空格&…

性能优化之节流、防抖

1. 防抖&#xff1a; 由于dom操作极其昂贵&#xff0c;所以尝试过多的dom操作有可能会将浏览器搞崩溃&#xff0c;比如onresize、onscroll这类事件操作&#xff1b;为了解决这个问题&#xff0c;引出防抖的概念&#xff08;某些代码不可以在没有间断的情况下连续重复执行&#…

百万用户规模的系统如何扩展

摘要&#xff1a;系统扩展一直是个让人头疼的事情&#xff0c;MatinKleppmann通过本文分享了他自己的6条经验&#xff0c;外加网友的一条建议&#xff0c;这些经验对于扩展Twitter这样规模的系统或许帮助不大&#xff0c;但是对于百万用户级别的系统扩展就另当别论了。 【编者…

springboot 项目输出 sql 到控制台、 SpringBoot 中 Mybatis 打印 sql

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 SpringBoot中Mybatis打印sql 如果使用的是 application.properties 文件&#xff0c;加入如下配置&#xff1a; logging.level.com.ex…

JS流程图解决方案GoJS

GoJs简介 一个实现交互类图表&#xff08;比如流程图&#xff0c;树图&#xff0c;关系图&#xff0c;力导图等等&#xff09;的JS库 GoJS依赖于HTML5&#xff0c;所以请保证您的浏览器版本支持HTML5&#xff0c;当然还要加载这个库。 首先个人建议先下载官方实例的 离线版本【…

VUE.JS 组件化开发实践

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 前言 公司目前制作一个H5活动&#xff0c;特别是有一定统一结构的活动&#xff0c;都要码一个重复的轮子。后来接到一个基于模板的活动…

Space Time Varying Color Palette

PDF Space Time Varying Color Palettes from Bo Zhou转载于:https://www.cnblogs.com/Jedimaster/p/4941857.html