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生成随机密码或随机字符串的方法
Jul 03 Python
谈谈如何手动释放Python的内存
Dec 17 Python
使用paramiko远程执行命令、下发文件的实例
Oct 01 Python
python实现发送邮件功能代码
Dec 14 Python
《与孩子一起学编程》python自测题
May 27 Python
Python实现网站表单提交和模板
Jan 15 Python
使用Python的SymPy库解决数学运算问题的方法
Mar 27 Python
对Python获取屏幕截图的4种方法详解
Aug 27 Python
python字符串格式化方式解析
Oct 19 Python
如何使用python socket模块实现简单的文件下载
Sep 04 Python
Pyinstaller打包Scrapy项目的实现步骤
Sep 22 Python
用Python 执行cmd命令
Dec 18 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/11/06 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
php利用array_search与array_column实现二维数组查找
2019/07/08 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
js确定对象类型方法
2012/03/30 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
使用get方式提交表单在地址栏里面不显示提交信息
2017/02/21 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
详解vue-cli 构建Vue项目遇到的坑
2017/08/30 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
npm qs模块使用详解
2020/02/07 Javascript
Python实现二分法算法实例
2015/02/02 Python
python uuid模块使用实例
2015/04/08 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
虚拟机下载python是否需要联网
2020/07/27 Python
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
受欢迎的大学生自我评价
2013/12/05 职场文书
推广普通话标语
2014/06/27 职场文书
高中生毕业评语
2014/12/30 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏