Python中的logging

Logging From Python

Preface *Jack Lee*

logging是Python提供用於記錄日誌的模塊.

其中有6種日誌等級.

  • NOTSET: 00 不設置.
  • DEBUG: 10 詳細信息.
  • INFO: 20 正常工作信息.
  • WARNING: 30 警告信息.
  • ERROR: 40 錯誤信息.
  • CRITICAL: 50 致命信息.

Getting Start

  • 設置低等級, 只會顯示當前等級和高於當前等級的信息.
  • 要使用日誌模塊
    • 創建日誌對象並設定等級
    • 創建處理對象並設定等級
    • 定義日誌格式
    • 將處理對象添加到日誌對象中
import logging


# 創建log對象, 設置等級, 指定日誌記錄輸出文件.
logger = logging.getLogger('test_log.txt')
logger.setLevel(logging.DEBUG)

# 創建控制檯處理對象.
sh = logging.StreamHandler()
sh.setLevel(logging.ERROR)

# 創建log文件處理對象.
fh = logging.FileHandler('test_log.txt')
fh.setLevel(logging.DEBUG)

# 定義日誌格式.
fromatter = logging.Formatter('TIME:%(asctime)s LOG:%(levelname)s INFO:%(message)s')
sh.setFormatter(fromatter)
fh.setFormatter(fromatter)

# 將處理對象扔給log對象.
logger.addHandler(sh)
logger.addHandler(fh)


if __name__ == '__main__':
    logger.debug('This is DEBUG')
    logger.error('ERROR')
    logger.info('info')
    logger.critical('critical')
  • Formatter日誌格式
    • %(name)s: logger名字
    • %(levelno)s: 日誌等級的數值形式
    • %(levelname)s: 日誌等級的文本形式
    • %(filename)s: 調用日誌輸出的文件名
    • %(module)s: 調用日誌輸出的模塊名
    • %(asctime)s: 當前時間的時間字符串
    • %(message)s: 用戶輸出的信息
    • %(funcName)s: 調用日誌輸出的函數名
    • %(lineno)d: 調用日誌輸出函數的語句所在的代碼行
    • %(created)f: 當前的時間, UNIX標準的浮點型表示.
    • %(thread)d: 線程ID.
    • %(threadName)s: 線程名.
    • %(process)d: 進程ID.
    • %(processName)s: 進程名.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章