Python中Loguru模塊的具體使用
1.Loguru模塊的基本概念
Python logging模塊定義了為應(yīng)用程序和庫實現(xiàn)靈活的事件日志記錄的函數(shù)和類。程序開發(fā)過程中,很多程序都有記錄日志的需求,并且日志包含的信息有正常的程序訪問日志還可能有錯誤、告警等信息輸出,Python的logging模塊提供了標準的日志接口,可以通過它存儲各種格式的日志,日志記錄提供了一組便利功能,用于簡單的日志記錄用法。
使用Python Logging模塊的主要好處是所有的Pyhon模塊都可以參與日志記錄,logging模塊提供了大量具有靈活性的功能。
為什么要使用loguru?
簡單且方便的幫助我們輸出需要的日志信息
使用 Python 來寫程序或者腳本的話,常常遇到的問題就是需要對日志進行刪除.一方面可以幫助我們在程序出問題的時候排除問題,二來可以幫助我們記錄需要關(guān)注的信息
但是,使用自帶自帶的 logging 模塊的話,則需要我們進行不同的初始化等相關(guān)工作。對應(yīng)不熟悉該模塊的同學來說,還是有些費勁的,比如需要配置 Handler/Formatter 等。 隨著業(yè)務(wù)的復雜度提升, 對日志收集有著更高的要求, 例如: 日志分類, 文件存儲, 異步寫入, 自定義類型等等
loguru 是一個 Python 簡易且強大的第三方日志記錄庫,該庫旨在通過添加一系列有用的功能來解決標準記錄器的注意事項,從而減少 Python 日志記錄的痛苦
2.Loguru模塊的安裝與特性
2.1 安裝
[root@localhost ~]# pip3 install loguru # 安裝模塊 [root@localhost ~]# pip3 show loguru # 查看模塊相關(guān)信息

2.2 功能特性
- 開箱即用,無需準備
- 無需初始化,導入函數(shù)即可使用
- 更容易的文件日志記錄與轉(zhuǎn)存/保留/壓縮方式
- 更優(yōu)雅的字符串格式化輸出
- 可以在線程或主線程中捕獲異常
- 可以設(shè)置不同級別的日志記錄樣式
- 支持異步,且線程和多進程安全
- 支持惰性計算
- 適用于腳本和庫
- 完全兼容標準日志記錄
- 更好的日期時間處理
3.Loguru模塊的功能詳解
1.開箱即用
# ======================
# -*-coding: Utf-8 -*-
# ======================
from loguru import logger
logger.debug('debug log')
上面的日志記錄語句,默認向stderr(控制臺)打印了一條輸出語句,輸出結(jié)果如下所示

?可以看出,loguru默認配置了一套日志輸出格式,有時間、級別、模塊名、行號以及日志信息,不需要手動創(chuàng)建 logger,直接使用即可,另外其輸出還是彩色的,看起來會更加友好。所以我們不需要提前配置什么,直接用就可以
2.定義日志輸出時的行為
?要達到logging中的Handler(日志輸出地)、Formattetr(日志輸出格式)、Filter(過濾輸出的日志數(shù)據(jù)的效果,以及定義輸出日志級別等等,全都可以在logger.add()這一個函數(shù)中完成
# ======================
# -*-coding: Utf-8 -*-
# ======================
from loguru import logger
import os
# 當前文件的目錄路徑
dir_path = os.path.abspath(os.path.dirname(__file__))
# 日志路徑
log_file_path = os.path.join(dir_path,'loguru.log')
# 配置日志輸出到文件,輸出最低等級為info,格式自定義
logger.add(log_file_path,format="{time} {level} {message}",level="INFO")
logger.debug('debug msg')
logger.info('info msg')
logger.warning('warning msg')
logger.error('error msg')

日志文件的轉(zhuǎn)存
# ======================
# -*-coding: Utf-8 -*-
# ======================
from loguru import logger
import os
# 當前文件的目錄路徑
dir_path = os.path.abspath(os.path.dirname(__file__))
# 日志路徑
log_file_path = os.path.join(dir_path,'loguru_{time:%Y-%m-%d}.log')
# 配置日志輸出到文件,輸出最低等級為info,格式自定義
logger.add(log_file_path,format="{time} {level} {message}",level="INFO")
logger.debug('debug msg')
logger.info('info msg')
logger.warning('warning msg')
logger.error('error msg')
# 通過配置rotaion參數(shù),指定文件轉(zhuǎn)存的條件
logger.add(log_file_path,rotation="500MB") # 超過500MB自動分割文件
logger.add(log_file_path,rotation="12:00") # 每天固定時間定時創(chuàng)建文件
logger.add(log_file_path,rotation="1 week") # 每隔一段時間創(chuàng)建文件
# 通過配置retention參數(shù),指定文件存儲的條件
logger.add(log_file_path,retention="10 days") # 可以指定日志的保留時長 ,retention=“10 days” 每隔10天就會清理舊的日志,這樣就不會造成內(nèi)存的浪費
# 通過配置compression參數(shù)可以指定日志文件的壓縮格式
logger.add(log_file_path,compression="gz")
?有add()就有remove(),add()函數(shù)定義了日志輸出行為后,會返回一個int類型的id,remove()函數(shù)通過這個id就可以刪除之前在add()函數(shù)中所定義的東西
# ======================
# -*-coding: Utf-8 -*-
# ======================
from loguru import logger
import os
# 當前文件的目錄路徑
dir_path = os.path.abspath(os.path.dirname(__file__))
# 日志路徑
log_file_path = os.path.join(dir_path,'loguru_{time:%Y-%m-%d}.log')
# 配置日志輸出到文件,輸出最低等級為info,格式自定義
logger.add(log_file_path,format="{time} {level} {message}",level="INFO")
# 刪除剛才在add()自定義輸出
logger.remove()
logger.debug('debug msg')
logger.info('info msg')
logger.warning('warning msg')
logger.error('error msg')
文件的日志內(nèi)容是空白的
remove(handler_id=None): 會刪除之前所有add()中自定義的東西,包括Loguru的默認配置
到此這篇關(guān)于Python中Loguru模塊的具體使用的文章就介紹到這了,更多相關(guān)Python Loguru模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pip install -e.出現(xiàn)xxx module not fou
這篇文章主要介紹了pip install -e.出現(xiàn)xxx module not found error的問題解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-07-07
基于Python開發(fā)圖片文件信息統(tǒng)計工具
這篇文章主要為大家詳細介紹了如何開發(fā)一個基于Python的圖形化工具,幫助用戶快速統(tǒng)計文件夾中所有圖片的詳細信息并導出到Excel文件中,有需要的小伙伴可以了解下2025-05-05
Python使用pdfminer庫玩轉(zhuǎn)PDF文本提取
pdfminer是一個開源的Python第三方庫,專門用于解析PDF文件,本文主要為大家詳細介紹了如何使用pdfminer實現(xiàn)PDF文本提取,有需要的小伙伴可以了解下2025-02-02
Python多叉樹的構(gòu)造及取出節(jié)點數(shù)據(jù)(treelib)的方法
今天小編就為大家分享一篇Python多叉樹的構(gòu)造及取出節(jié)點數(shù)據(jù)(treelib)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
利用python+request通過接口實現(xiàn)人員通行記錄上傳功能
這篇文章主要介紹了利用python+request通過接口實現(xiàn)人員通行記錄上傳功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01

