最近專案中有乙個採集日誌的需求,因此去了解了一下logging模組的使用,雖然網上一查就有很多資料可以參考,但還是在這裡總結一下,加深理解。
一、logging模組簡介
logging是python內建的標準模組,主要用於輸出執行日誌,可以設定輸出日誌的等級、日誌儲存路徑、日誌檔案回滾等。
它與print相比具有以下優點:
1、可以通過設定不同的日誌等級,在程式的除錯和正式發布階段分別輸出除錯需要輸出的資訊和正式執行時輸出的日誌。
2、我們在除錯程式時往往選擇print的方式輸出資訊,而print會將所有資訊都輸出到標準輸出中,嚴重影響開發者從標準輸出中檢視其它資料。
二、簡單的使用
#! /usr/bin/env python
# coding: utf-8
import os
import logging
import sys
def main():
# 獲取logger例項,如果引數為空則返回root logger
logger = logging.getlogger("my_log")
# 設定日誌輸出格式
formatter = logging.formatter('%(asctime)s [%(filename)s:%(lineno)s][%(levelname)s] %(message)s')
# 檔案日誌
file_handler = logging.filehandler("test.log")
file_handler.setformatter(formatter)
# 控制台日誌
console_handler = logging.streamhandler(sys.stdout)
console_handler.setformatter(formatter)
# 為logger新增的日誌處理器
logger.addhandler(file_handler)
logger.addhandler(console_handler)
# 指定日誌的最低輸出級別,預設為warn級別
logger.setlevel(logging.info)
# 輸出不同級別的log
logger.debug('this is debug info')
logger.info('this is information')
logger.warn('this is warning message')
logger.error('this is error message')
logger.critical('this is critical message')
if __name__ == '__main__':
main()
控制台輸出:
f:\python\mytest\venv\scripts\python.exe f:/python/mytest/common/logger.py
2019-05-19 11:15:00,733 [logger.py:75][info] this is information
2019-05-19 11:15:00,733 [logger.py:76][warning] this is warning message
2019-05-19 11:15:00,733 [logger.py:77][error] this is error message
2019-05-19 11:15:00,733 [logger.py:78][critical] this is critical message
三、日誌檔案回滾
handler = logging.handlers.rotatingfilehandler(filename, maxbytes=10*1024*1024, backupcount=5)
python的logging模組簡單應用
python3 標準庫自帶logging模組,使用的時候直接引用 寫log import logging 引入logging模組 from logging.handlers import timedrotatingfilehandler import os.path import time 第一步,...
logging模組,shutil模組
用於便捷記錄日誌且執行緒安全的模組 1 單檔案日誌 import logging logging.basicconfig filename 檔名.log format asctime s name s levelname s module s message s datefmt y m d h m ...
日誌模組 logging模組
logging.debug 通常除錯時用到的日誌資訊 logging.info 證明事情按照預期的那樣工作 longging.warning 表明發生了意外,或者不就得將來發生的問題 如 磁碟滿了 軟體還是正常的工作 longging.error 由於更嚴重的問題導致軟體已經不能繼續執行某些功能 l...