Python Loguru輕松靈活的日志管理庫基本用法探索
前言
我們在實際項目中,經(jīng)常需要保持程序運行的日志,數(shù)據(jù),錯誤等,Loguru沒出來前我們都是通過 Python 自帶的庫logging去封裝一個打印log的類,然后到處去import 調(diào)用,如果想某個程序增加打印log的內(nèi)容還要去修改封裝的logging類,導(dǎo)致會出現(xiàn)很多的logging封裝文件出來。剛剛好Loguru的出現(xiàn)解決了。
什么是loguru?
Loguru是一個用于Python的高性能、簡潔且靈活的日志庫。它的目標(biāo)是提供一種簡單的方式來記錄應(yīng)用程序的運行情況,同時保持代碼的簡潔性和可讀性,本文將探索loguru的基本用法
安裝
使用pip來安裝loguru庫。在你的命令行中輸入以下命令
pip install loguru
基本用法
導(dǎo)入loguru
適用3.5及其以上版本
>>> from loguru import logger
log保存的文件
>>> logger.add("D:\logs\logs.log") # 如果logs目錄不存在會給你自動創(chuàng)建 1
更靈活的保存日志方式
logger.add("test_1.log", rotation="500 MB") # 日志超過500M 創(chuàng)建新log文件 logger.add("test_2.log", rotation="12:00") # 每天中午12點創(chuàng)建一個新的log文件 logger.add("test_3.log", rotation="1 week") # 文件太舊,自動創(chuàng)建新的 logger.add("test_X.log", retention="10 days") # 10 天后qingl日志 logger.add("test_Y.log", compression="zip") # 保存壓縮文件 ,節(jié)省空
打印log輸出log到文件里面
1 >>> logger.debug("this is debug info") [32m2023-11-23 23:33:26.858[0m | [34m[1mDEBUG [0m | [36m__main__[0m:[36m<module>[0m:[36m1[0m - [34m[1mthis is debug info[0m >>> logger.info("this is info") [32m2023-11-23 23:34:20.482[0m | [1mINFO [0m | [36m__main__[0m:[36m<module>[0m:[36m1[0m - [1mthis is info[0m >>> logger.warning("這是一個警告信息") [32m2023-11-23 23:34:37.977[0m | [33m[1mWARNING [0m | [36m__main__[0m:[36m<module>[0m:[36m1[0m - [33m[1m這是一個警告信息[0m >>> logger.error("這是個錯誤信息") [32m2023-11-23 23:36:32.399[0m | [31m[1mERROR [0m | [36m__main__[0m:[36m<module>[0m:[36m1[0m - [31m[1m這是個錯誤信息[0m >>> logger.critical("這是個嚴(yán)重錯誤信息") [32m2023-11-23 23:37:05.448[0m | [41m[1mCRITICAL[0m | [36m__main__[0m:[36m<module>[0m:[36m1[0m - [41m[1m這是個嚴(yán)重錯誤信息[0m >>> logger.info("i using Python {}, support {feature} !", 3.9, feature="f-strings") #格式化輸出 [32m2023-11-25 09:19:50.034[0m | [1mINFO [0m | [36m__main__[0m:[36m<module>[0m:[36m1[0m - [1mi using Python 3.9, support f-strings ![0m 以
以上是在python idle里面執(zhí)行的,不會顯示樣式,看下面截圖,在cmd里面執(zhí)行的
捕獲異常
>>> @logger.catch def fun(x,y):return x/y >>> fun(1,0)
設(shè)置日志級別
怎么添加handler、如何設(shè)置日志格式、怎么添加過濾消息和設(shè)置日志級別,一個logger.add()幫忙你搞定
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")
總結(jié)
Python loguru有以下優(yōu)點
簡單易用:Loguru 提供了簡潔明了的 API,只需導(dǎo)入模塊,一行代碼即可調(diào)用。
靈活性:Loguru 支持多種輸出方式(如控制臺、文件等),并且可以自定義輸出格式和級別。
高效性:Loguru 使用了異步 I/O 技術(shù),可以提高日志記錄的效率。
兼容性:Loguru 兼容 Python 3.5+ 版本,可以在各種環(huán)境下使用。
功能豐富:Loguru 支持多種日志級別、過濾器、上下文管理,捕獲異常等功能,可以滿足不同場景的需求
更多的用法參考:
github: https://github.com/Delgan/loguru
官方文檔:https://loguru.readthedocs.io/en/stable/index.html
以上就是Python Loguru輕松靈活的日志管理庫基本用法探索的詳細(xì)內(nèi)容,更多關(guān)于Python Loguru日志管理庫的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
PyQt5使用mimeData實現(xiàn)拖拽事件教程示例解析上
這篇文章主要為大家介紹了PyQt中如何使用mimeData實現(xiàn)拖拽事件的示例解析過程,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10Python數(shù)據(jù)可視化Pyecharts庫實現(xiàn)桑葚圖效果
這篇文章主要介紹了Python數(shù)據(jù)可視化如何使用Pyecharts庫來實現(xiàn)桑葚圖效果圖,文中給出實現(xiàn)的示例代碼,有需要的朋友可以借鑒參考想,希望能夠有所幫助2021-09-09Python?OpenCV識別行人入口進(jìn)出人數(shù)統(tǒng)計
本文主要介紹了Python?OpenCV識別行人入口進(jìn)出人數(shù)統(tǒng)計,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>2023-01-01Python腳本如何在bilibili中查找彈幕發(fā)送者
這篇文章主要介紹了如何在bilibili中查找彈幕發(fā)送者,本文給大家分享小編寫的一個python腳本來實現(xiàn)bilibili彈幕發(fā)送者,需要的朋友可以參考下2020-06-06Python之tkinter組合框Combobox用法及說明
這篇文章主要介紹了Python之tkinter組合框Combobox用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05pandas使用fillna函數(shù)填充NaN值的代碼實例
最近在工作中遇到一個問題,pandas讀取的數(shù)據(jù)中nan在保存后變成空字符串,所以下面這篇文章主要給大家介紹了關(guān)于pandas使用fillna函數(shù)填充NaN值的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07