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
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? '''
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。