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?
'''


原文鏈接:https://blog.csdn.net/qq_27825451/article/details/93744344

https://www.cnblogs.com/lixiaoting/p/11131289.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM