一、 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