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通过openpyxl生成Excel文件的方法
May 12 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
python微信跳一跳系列之棋子定位像素遍历
Feb 26 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
Python简单实现网页内容抓取功能示例
Jun 07 Python
对numpy中向量式三目运算符详解
Oct 31 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
Jul 09 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
Aug 24 Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 Python
Django实现将一个字典传到前端显示出来
Apr 03 Python
Python解析微信dat文件的方法
Nov 30 Python
Python matplotlib可视化之绘制韦恩图
Feb 24 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
PHP 时间日期操作实战
2011/08/26 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
快速了解python leveldb
2018/01/18 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
Python字符串的修改方法实例
2019/12/19 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
Python自带的IDE在哪里
2020/07/01 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
美国滑板店:Tactics
2020/11/08 全球购物
英智兴达软件测试笔试题
2016/10/12 面试题
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python