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网络编程之文件下载实例分析
May 20 Python
Python使用Supervisor来管理进程的方法
May 28 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
Sep 21 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
May 03 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
Python使用requests提交HTTP表单的方法
Dec 26 Python
12个步骤教你理解Python装饰器
Jul 01 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
Oct 11 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
Apr 20 Python
学python爬虫能做什么
Jul 29 Python
通过案例解析python鸭子类型相关原理
Oct 10 Python
python pymysql库的常用操作
Oct 16 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递归返回值时出现的问题解决办法
2013/02/19 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
2014/08/21 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
php自定义hash函数实例
2015/05/05 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
js 中 document.createEvent的用法
2010/08/29 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
深入理解python函数递归和生成器
2016/06/06 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
django基于restframework的CBV封装详解
2019/08/08 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
python简单实现插入排序实例代码
2020/12/16 Python
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
哪些情况下不应该使用索引
2015/07/20 面试题
通信工程专业毕业生推荐信
2013/12/25 职场文书
团日活动总结书格式
2014/05/08 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
2015年领班工作总结
2015/04/29 职场文书
Python中的套接字编程是什么?
2021/06/21 Python
java实现自定义时钟并实现走时功能
2022/06/21 Java/Android
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS