1. 程式人生 > 程式設計 >python實現簡單日誌記錄庫glog的使用

python實現簡單日誌記錄庫glog的使用

這篇文章主要介紹了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,message=None):

def check_le(obj1,message=None):

def check_ge(obj1,message=None):

def check_lt(obj1,message=None):

def check_gt(obj1,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?
'''

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。