python  logging日志打印过程解析


Posted in Python onOctober 22, 2019

一、 基础使用

1.1 logging使用场景

日志是什么?这个不用多解释。百分之九十的程序都需要提供日志功能。Python内置的logging模块,为我们提供了现成的高效好用的日志解决方案。但是,不是所有的场景都需要使用logging模块,下面是Python官方推荐的使用方法:

任务场景 最佳工具
普通情况下,在控制台显示输出 print()
报告正常程序操作过程中发生的事件 logging.info()(或者更详细的logging.debug())
发出有关特定事件的警告 warnings.warn()或者logging.warning()
报告错误 弹出异常
在不引发异常的情况下报告错误 logging.error(), logging.exception()或者logging.critical()

logging模块定义了下表所示的日志级别,按事件严重程度由低到高排列(注意是全部大写!因为它们是常量。):

级别 级别数值 使用时机
DEBUG 10 详细信息,常用于调试。
INFO 20 程序正常运行过程中产生的一些信息。
WARNING 30 警告用户,虽然程序还在正常工作,但有可能发生错误。
ERROR 40 由于更严重的问题,程序已不能执行一些功能了。
CRITICAL 50 严重错误,程序已不能继续运行。

默认级别是WARNING,表示只有WARING和比WARNING更严重的事件才会被记录到日志内,低级别的信息会被忽略。因此,默认情况下,DEBUG和INFO会被忽略,WARING、ERROR和CRITICAL会被记录。

有多种方法用来处理被跟踪的事件。最简单的方法就是把它们打印到终端控制台上。或者将它们写入一个磁盘文件内。

1.2 简单范例

在什么都不配置和设定的情况下,logging会简单地将日志打印在显示器上,如下例所示:

import logging
logging.warning('Watch out!') # 消息会被打印到控制台上
logging.info('I told you so') # 这行不会被打印,因为级别低于默认级别

如果,将上面的代码放在一个脚本里并运行,结果是:

WARNING:root:Watch out!

1.3 高级使用

import logging

#创建logger记录器
logging.basicConfig(filename='example.log',level=logging.DEBUG)
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)

#创建一个控制台处理器,并将日志级别设置为debug

ch = logging.StreamHandler()

ch.setLevel(logging.DEBUG)

#创建formatter格式化器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

#将formatter 添加到ch处理器
ch.setFormatter(formatter)

#将ch添加到logger
logger.addHandler(ch)

#然后就可以开始使用了
# logger.debug('debug message')
#logger.info('info message')
# logger.warning('warn message')
# logger.error('error message')
# logger.critical('critical message')

def Logss():
  #要打印的信息
  a = "3"
  logger.info(a)

Logss()

python  logging日志打印过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现保证只能运行一个脚本实例
Jun 24 Python
解析Python编程中的包结构
Oct 25 Python
python+selenium实现登录账户后自动点击的示例
Dec 22 Python
Python基于OpenCV实现视频的人脸检测
Jan 23 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
Apr 02 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
python版本单链表实现代码
Sep 28 Python
通过python实现随机交换礼物程序详解
Jul 10 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
基于Python pyecharts实现多种图例代码解析
Aug 10 Python
Python3如何实现Win10桌面自动切换
Aug 11 Python
pandas针对excel处理的实现
Jan 15 Python
安装2019Pycharm最新版本的教程详解
Oct 22 #Python
Python列表list常用内建函数实例小结
Oct 22 #Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 #Python
Python异常模块traceback用法实例分析
Oct 22 #Python
Python多线程爬取豆瓣影评API接口
Oct 22 #Python
Python Process多进程实现过程
Oct 22 #Python
详解python中eval函数的作用
Oct 22 #Python
You might like
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
JavaScript剩余操作符Rest Operator详解
2019/07/20 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
简述Python2与Python3的不同点
2018/01/21 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
详解Python中is和==的区别
2019/03/21 Python
Python中Numpy mat的使用详解
2019/05/24 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
Python线程障碍对象Barrier原理详解
2019/12/02 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
2020/02/28 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
pytorch 计算Parameter和FLOP的操作
2021/03/04 Python
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
意大利单身交友网站:Meetic
2020/07/12 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
高级人员简历的自我评价分享
2013/11/03 职场文书
毕业生的自我评价
2013/12/30 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
班班通校本培训方案
2014/03/12 职场文书
预备党员公开承诺书
2014/05/28 职场文书
2014高考励志标语
2014/06/05 职场文书
售房协议书范本2014
2014/10/23 职场文书
工会工作个人总结
2015/03/03 职场文书
Python下opencv库的安装过程及问题汇总
2021/06/11 Python
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL