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

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

?可以看出,loguru默認(rèn)配置了一套日志輸出格式,有時(shí)間、級(jí)別、模塊名、行號(hào)以及日志信息,不需要手動(dòng)創(chuàng)建 logger,直接使用即可,另外其輸出還是彩色的,看起來會(huì)更加友好。所以我們不需要提前配置什么,直接用就可以
2.定義日志輸出時(shí)的行為
?要達(dá)到logging中的Handler(日志輸出地)、Formattetr(日志輸出格式)、Filter(過濾輸出的日志數(shù)據(jù)的效果,以及定義輸出日志級(jí)別等等,全都可以在logger.add()這一個(gè)函數(shù)中完成
# ======================
# -*-coding: Utf-8 -*-
# ======================
from loguru import logger
import os
# 當(dāng)前文件的目錄路徑
dir_path = os.path.abspath(os.path.dirname(__file__))
# 日志路徑
log_file_path = os.path.join(dir_path,'loguru.log')
# 配置日志輸出到文件,輸出最低等級(jí)為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
# 當(dāng)前文件的目錄路徑
dir_path = os.path.abspath(os.path.dirname(__file__))
# 日志路徑
log_file_path = os.path.join(dir_path,'loguru_{time:%Y-%m-%d}.log')
# 配置日志輸出到文件,輸出最低等級(jí)為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自動(dòng)分割文件
logger.add(log_file_path,rotation="12:00") # 每天固定時(shí)間定時(shí)創(chuàng)建文件
logger.add(log_file_path,rotation="1 week") # 每隔一段時(shí)間創(chuàng)建文件
# 通過配置retention參數(shù),指定文件存儲(chǔ)的條件
logger.add(log_file_path,retention="10 days") # 可以指定日志的保留時(shí)長(zhǎng) ,retention=“10 days” 每隔10天就會(huì)清理舊的日志,這樣就不會(huì)造成內(nèi)存的浪費(fèi)
# 通過配置compression參數(shù)可以指定日志文件的壓縮格式
logger.add(log_file_path,compression="gz")
?有add()就有remove(),add()函數(shù)定義了日志輸出行為后,會(huì)返回一個(gè)int類型的id,remove()函數(shù)通過這個(gè)id就可以刪除之前在add()函數(shù)中所定義的東西
# ======================
# -*-coding: Utf-8 -*-
# ======================
from loguru import logger
import os
# 當(dāng)前文件的目錄路徑
dir_path = os.path.abspath(os.path.dirname(__file__))
# 日志路徑
log_file_path = os.path.join(dir_path,'loguru_{time:%Y-%m-%d}.log')
# 配置日志輸出到文件,輸出最低等級(jí)為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): 會(huì)刪除之前所有add()中自定義的東西,包括Loguru的默認(rèn)配置
到此這篇關(guān)于Python中Loguru模塊的具體使用的文章就介紹到這了,更多相關(guān)Python Loguru模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pip install -e.出現(xiàn)xxx module not fou
這篇文章主要介紹了pip install -e.出現(xiàn)xxx module not found error的問題解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-07-07
基于Python開發(fā)圖片文件信息統(tǒng)計(jì)工具
這篇文章主要為大家詳細(xì)介紹了如何開發(fā)一個(gè)基于Python的圖形化工具,幫助用戶快速統(tǒng)計(jì)文件夾中所有圖片的詳細(xì)信息并導(dǎo)出到Excel文件中,有需要的小伙伴可以了解下2025-05-05
Python使用pdfminer庫玩轉(zhuǎn)PDF文本提取
pdfminer是一個(gè)開源的Python第三方庫,專門用于解析PDF文件,本文主要為大家詳細(xì)介紹了如何使用pdfminer實(shí)現(xiàn)PDF文本提取,有需要的小伙伴可以了解下2025-02-02
一步步教你用python給女朋友寫個(gè)微信自動(dòng)提醒的程序
如今微信已成為我們?nèi)粘I畹闹饕涣鞴ぞ?但是微信自身的功能有時(shí)候可能并不能滿足我們的需要,因此我們會(huì)想是否可以進(jìn)行微信功能的拓展呢,這篇文章主要給大家介紹了關(guān)于利用python給女朋友寫了個(gè)微信自動(dòng)提醒程序的相關(guān)資料,需要的朋友可以參考下2021-10-10
Python多叉樹的構(gòu)造及取出節(jié)點(diǎn)數(shù)據(jù)(treelib)的方法
今天小編就為大家分享一篇Python多叉樹的構(gòu)造及取出節(jié)點(diǎn)數(shù)據(jù)(treelib)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08
利用python+request通過接口實(shí)現(xiàn)人員通行記錄上傳功能
這篇文章主要介紹了利用python+request通過接口實(shí)現(xiàn)人員通行記錄上傳功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01

