Python3-logging模塊-日誌記錄

Python3中的logging模塊提供了較爲靈活的事件日誌系統html

  日誌級別python

    DEBUG < INFO < WARING(Python默認) < ERROR < FATAL(CRITICAL)ide

  logging模塊經常使用的類主要有如下幾個函數

    logging.Loggerspa

      主要提供應用程序代碼直接使用的接口,通常不會直接實例化,而是經過logging.getLogger(name)獲得debug

    logging.Handler3d

      日誌處理對象的基類,不該實例化,被實例化的應該是其子類,如logging.StreamHandler,它負責發送日誌記錄到正確的目標日誌

    logging.Formattercode

      它決定了以怎樣的格式來進行打印日誌記錄,經常使用的日誌格式以下:orm

      %(name)s

        Logger對象的名字

      %(levelname)s

        日誌級別的英文表示

      %(filename)s

        調用日誌輸出函數的模塊名

      %(lineno)s

        調用日誌輸出函數的語句所在的代碼行

      %(asctime)s

        字符串形式的當前時間

      %(message)s

        用戶輸出的消息

示例代碼

import logging

# 1.初始化日誌默認配置
logging.basicConfig(filename='./my.log',                                                 # 日誌輸出文件
                    level=logging.DEBUG,                                                 # 日誌寫入級別
                    datefmt='%Y-%m-%d %H:%M:%S',                                         # 時間格式
                    format='%(asctime)s %(levelname)s Line:%(lineno)s==>%(message)s')    # 日誌寫入格式

# 2.打印不一樣級別的日誌記錄
logging.debug("debug級別的日誌")
logging.info("info級別的日誌")
logging.warning("warning級別的日誌")
logging.error("error級別的日誌")
logging.critical("fatal級別的日誌")
1.基礎配置僅打印日誌到文件

import logging

# Formatter對象 用於決定日誌打印的格式
fmt = logging.Formatter("%(asctime)s %(levelname)s Line:%(lineno)s==>%(message)s")
fmt.datefmt = "%Y-%m-%d %H:%M:%S"      # 能夠自定義時間的格式

# Handler對象 將(logger建立的)日誌記錄發送到合適的目的輸出
ch = logging.StreamHandler()            # 標準輸出流處理對象
ch.setFormatter(fmt)
ch.setLevel(logging.WARNING)

fh = logging.FileHandler("./jet.log")   # 文件處理對象
fh.setFormatter(fmt)
fh.setLevel(logging.FATAL)

# Logger對象 對外暴露的接口
logger = logging.getLogger("Jet")
logger.addHandler(ch)
logger.addHandler(fh)
logger.setLevel(logging.INFO)         # 日誌級別總控制,以它爲最低級別


# 日誌輸出
logger.debug("debug級別的日誌")
logger.info("info級別的日誌")
logger.warning("warning級別的日誌")
logger.error("error級別的日誌")
logger.critical("fatal級別的日誌")
2.自定義配置雙向輸出日誌到控制檯和文件

參考資料

  http://python.usyiyi.cn/translate/python_352/library/logging.html

相關文章
相關標籤/搜索