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中使用PIL模块对图片进行高斯模糊处理的教程
May 05 Python
在Python中使用全局日志时需要注意的问题
May 06 Python
python使用正则表达式提取网页URL的方法
May 26 Python
Python 列表排序方法reverse、sort、sorted详解
Jan 22 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
python 对给定可迭代集合统计出现频率,并排序的方法
Oct 18 Python
PYTHON EVAL的用法及注意事项解析
Sep 06 Python
详解python路径拼接os.path.join()函数的用法
Oct 09 Python
如何给Python代码进行加密
Jan 10 Python
Pytorch 图像变换函数集合小结
Feb 01 Python
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
Oct 16 Python
如何利用python创作字符画
Jun 25 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中的一些数组排序方法分享
2012/07/20 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
php备份数据库类分享
2015/04/14 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
小程序实现搜索框
2020/06/19 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
Python3 socket同步通信简单示例
2017/06/07 Python
Python简单实现自动删除目录下空文件夹的方法
2017/08/29 Python
python内置函数:lambda、map、filter简单介绍
2017/11/16 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
2020/06/22 Python
Django封装交互接口代码
2020/07/12 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
简述python&pytorch 随机种子的实现
2020/10/07 Python
小程序canvas中文字设置居中锚点
2019/04/16 HTML / CSS
工厂门卫的岗位职责
2014/07/27 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
担保书格式范文
2015/09/22 职场文书
nginx 多个location转发任意请求或访问静态资源文件的实现
2021/03/31 Servers