python:利用logbook模塊管理日志


日志管理作為軟件項目的通用部分,無論是開發還是自動化測試過程中,都顯得尤為重要。

最初是打算利用python的logging模塊來管理日志的,后來看了些github及其他人的自動化框架設計,做了個比對后,還是決定使用logbook。

這篇博客,介紹下python中的logbook模塊的使用方法,僅供參考。。。

 

一、下載安裝

1、文件安裝

從官網下載logbook安裝文件,然后安裝即可。

官網鏈接:https://pypi.org/project/Logbook/

2、pip命令安裝

進入CMD命令行,輸入 pip install logbook 命令進行安裝,安裝成功后,輸入 pip show logbook 命令,查看相關信息。

 

二、logbook簡介

logbook的設計初衷,就是用來取代python的標准庫日志模塊:logging。具體內容可通過下方的鏈接查看官方文檔說明:

官方文檔:http://logbook.readthedocs.io/en/stable/index.html

 

三、用法說明

示例代碼如下:log.py

# coding=utf-8
import os import sys import logbook from logbook import Logger,StreamHandler,FileHandler,TimedRotatingFileHandler from logbook.more import ColorizedStderrHandler def log_type(record,handler): log = "[{date}] [{level}] [{filename}] [{func_name}] [{lineno}] {msg}".format( date = record.time,                              # 日志時間
        level = record.level_name,                       # 日志等級
        filename = os.path.split(record.filename)[-1],   # 文件名
        func_name = record.func_name,                    # 函數名
        lineno = record.lineno,                          # 行號
        msg = record.message                             # 日志內容
 ) return log # 日志存放路徑
LOG_DIR = os.path.join("Log") if not os.path.exists(LOG_DIR): os.makedirs(LOG_DIR) # 日志打印到屏幕
log_std = ColorizedStderrHandler(bubble=True) log_std.formatter = log_type # 日志打印到文件
log_file = TimedRotatingFileHandler( os.path.join(LOG_DIR, '%s.log' % 'log'),date_format='%Y-%m-%d', bubble=True, encoding='utf-8') log_file.formatter = log_type # 腳本日志
run_log = Logger("script_log") def init_logger(): logbook.set_datetime_format("local") run_log.handlers = [] run_log.handlers.append(log_file) run_log.handlers.append(log_std) # 實例化,默認調用
logger = init_logger()

代碼解析:

1、定義日志文件類型,依次按照時間、日志等級、測試文件名、函數方法名、行數、具體的信息來展示;

   日志等級:

level describe
critical 嚴重錯誤,會導致程序退出
error 可控范圍內的錯誤
warning 警告信息
notice 大多情況下希望看到的記錄
info 大多情況不希望看到的記錄
debug 調試程序時詳細輸出的記錄

2、定義日志存放路徑為Log文件夾;

3、logbook的日志輸出方式有2種:打印到屏幕(比較適合調試時候,正式使用時可以將其注釋掉)和打印輸出到日志文件;

4、定義日志輸出;

5、實例化,方便其他模塊調用;

可以通過測試代碼來測試日志是否打印到了對應的路徑,測試代碼如下:test_log.py

# coding=utf-8
import os from log import run_log as logger if __name__ == '__main__': logger.info("測試log模塊,暫時就優化到這一步,后續再改進")

測試結果:

 

如上所示,即為logbook的基本使用方法,代碼僅供參考,具體使用請自行實踐。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM