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中map()与zip()操作方法
Feb 27 Python
Python探索之实现一个简单的HTTP服务器
Oct 28 Python
python如何求解两数的最大公约数
Sep 27 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
pytorch使用指定GPU训练的实例
Aug 19 Python
Python Socketserver实现FTP文件上传下载代码实例
Mar 27 Python
jupyter修改文件名方式(TensorFlow)
Apr 21 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
May 25 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
python3代码输出嵌套式对象实例详解
Dec 03 Python
如何用Python进行时间序列分解和预测
Mar 01 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 cc攻击代码与防范方法
2012/10/18 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
thinkphp分页实现效果
2016/10/13 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
JS 动态加载脚本的4种方法
2009/05/05 Javascript
jquery异步请求实例代码
2011/06/21 Javascript
jquery插件开发之实现md5插件
2014/03/17 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
Python中字符串的常见操作技巧总结
2016/07/28 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
pip安装python库的方法总结
2019/08/02 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
django-csrf使用和禁用方式
2020/03/13 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
介绍一下内联、左联、右联
2013/12/31 面试题
保密工作目标责任书
2014/07/28 职场文书
群众路线对照检查材料
2014/09/22 职场文书
自查自纠工作总结
2014/10/15 职场文书
2015年推普周活动总结
2015/03/27 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
mongodb清除连接和日志的正确方法分享
2021/09/15 MongoDB