python实现简单日志记录库glog的使用


Posted in Python onDecember 13, 2019

这篇文章主要介绍了python实现简单日志记录库glog的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、 glog的简介
glog所记录的日志信息总是记录到标准的stderr中,即控制台终端。

每一行日志记录总是会添加一个谷歌风格的前缀,即google-style log prefix, 它的形式如下:

E0924 22:19:15.123456 19552 filename.py:87] some message

上面红色部分加粗的就是谷歌风格的日志前缀,每一个部分都有其含义,定义如下:

(1)第一个字母表示日志的类型,E表示error,I表示info,W表示warning,F表示fatal

(2)紧接在后面的表示记录日志的时间,格式为MMDD,比如这里0924,表示的是9月24日

(3)紧接在日期后面的是时间,格式为HH:MM:SS.microseconds,比如这里的时间是22时19分15秒123456毫秒

(4)紧接着是进程的ID,即Process ID,也就是上面的19552

(5)紧接着是运行的程序文件,比如test.py

(6)最后是记录这一句日志是在文件中的哪一行发生的,比如87,指的是这句话是在py文件中的87行

二、glog有哪些功能
我们大致看一下glog模块里面定义的方法

复制代码
"""A simple Google-style logging wrapper."""

import logging
import time
import traceback
import os

import gflags as flags

# 这些方法其实都是来自于logging模块
debug = logging.debug
info = logging.info
warning = logging.warning
warn = logging.warning
error = logging.error
exception = logging.exception
fatal = logging.fatal
log = logging.log

DEBUG = logging.DEBUG
INFO = logging.INFO
WARNING = logging.WARNING
WARN = logging.WARN
ERROR = logging.ERROR
FATAL = logging.FATAL

#下面这些方法常用来检查某些条件或者是结果,然后根据实际情况输出日志信息
def check_failed(message):

def check(condition, message=None):

def check_eq(obj1, obj2, message=None):

def check_ne(obj1, obj2, message=None):

def check_le(obj1, obj2, message=None):

def check_ge(obj1, obj2, message=None):

def check_lt(obj1, obj2, message=None):

def check_gt(obj1, obj2, message=None):
复制代码
logging提供了一组便利的函数,用来做简单的日志。它们是 debug()、 info()、 warning()、 error() 和 critical()。

logging以严重程度递增排序:

DEBUG:详细信息,一般只在调试问题时使用

INFO:证明事情按预期工作

WARNING:某些没有预料到的时间提示,或者在将来可能会出现的问题提示。例如:磁盘空间不足,但是软件还是会照常运作

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

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

级别排序:CRITICAL>ERROR>WARNING>INFO>DEBUG

默认等级是WARNING

三、glog模块的简单示例

import glog
 
a=100
if a==100:
  glog.info("a=100")
 
b=0
if b==0:
  glog.error("b=0!")
  glog.fatal("b is 0")
  glog.warn("b is really 0?")
'''运行结果为:
I0626 15:35:54.071558 17300 test.py:10] a=100
E0626 15:35:54.072561 17300 test.py:14] b=0!
F0626 15:35:54.072561 17300 test.py:15] b is 0
W0626 15:35:54.072561 17300 test.py:16] b is really 0?
'''

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

Python 相关文章推荐
Python 网络编程起步(Socket发送消息)
Sep 06 Python
Python不规范的日期字符串处理类
Jun 10 Python
python在windows下实现备份程序实例
Jul 04 Python
python字符串排序方法
Aug 29 Python
各个系统下的Python解释器相关安装方法
Oct 12 Python
Ubuntu安装Jupyter Notebook教程
Oct 18 Python
基于Python的文件类型和字符串详解
Dec 21 Python
pycharm新建一个python工程步骤
Jul 16 Python
深入理解Tensorflow中的masking和padding
Feb 24 Python
Django ORM filter() 的运用详解
May 14 Python
Python Selenium模块安装使用教程详解
Jul 09 Python
python Yaml、Json、Dict之间的转化
Oct 19 Python
利用matplotlib实现根据实时数据动态更新图形
Dec 13 #Python
Python3将jpg转为pdf文件的方法示例
Dec 13 #Python
如何使用python3获取当前路径及os.path.dirname的使用
Dec 13 #Python
PyQt5多线程刷新界面防假死示例
Dec 13 #Python
wxpython多线程防假死与线程间传递消息实例详解
Dec 13 #Python
python-web根据元素属性进行定位的方法
Dec 13 #Python
python Jupyter运行时间实例过程解析
Dec 13 #Python
You might like
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
PHP4之COOKIE支持详解
2006/10/09 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
PHP简单日历实现方法
2016/07/20 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
jquery next nextAll nextUntil siblings的区别介绍
2013/10/05 Javascript
jquery $("#variable") 循环改变variable的值示例
2014/02/23 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
Python实现的几个常用排序算法实例
2014/06/16 Python
python 网络编程详解及简单实例
2017/04/25 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
jupyter notebook的安装与使用详解
2020/05/18 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
css3 矩阵的使用详解
2018/03/20 HTML / CSS
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
财务部出纳岗位职责
2013/12/22 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
管理失职检讨书范文
2015/05/05 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android