這篇文章主要介紹了python loguru日志庫(kù)之高效輸出控制臺(tái)日志和日志記錄的相關(guān)知識(shí)
安裝命令
pip3 install loguru
# Author=Hanosn
from loguru import logger
# 打印不同類型的日志
logger.debug("debug message")
logger.info("info level message")
logger.warning("warning level message")
logger.critical("critical level message")
# 日志格式和存入日志級(jí)別
logger.add("test.log", format="{time}|{level}|{message}", level="INFO")
# 序列化日志
logger.add("test.log", serialize=True)
# 按照日志大小自動(dòng)切割日志玲销,還可以按照時(shí)間切割:rotation='00:00'占键,rotation='1 week'窍仰,我們想要設(shè)置日志文件最長(zhǎng)保留10天此蜈,retention='10 days'
logger.add("test.log", rotation="500 MB")
# loguru 還可以配置文件的壓縮格式,比如使用 zip 文件格式保存
logger.add('runtime.log', compression='zip')
# 在很多情況下认轨,如果遇到運(yùn)行錯(cuò)誤,而我們?cè)诖蛴≥敵?log 的時(shí)候萬一不小心沒有配置好 Traceback 的輸出,很有可能我們就沒法追蹤錯(cuò)誤所在了袱院。但用了 loguru 之后,我們用它提供的裝飾器就可以直接進(jìn)行 Traceback 的記錄瞭稼,類似這樣的配置即可:
@logger.catch
def my_function(x, y, z):
# An error? It's caught anyway!
return 1 / (x + y + z)
# 我們做個(gè)測(cè)試忽洛,我們?cè)谡{(diào)用時(shí)三個(gè)參數(shù)都傳入 0,直接引發(fā)除以 0 的錯(cuò)誤弛姜,看看會(huì)出現(xiàn)什么情況:
my_function(0, 0, 0)
# 運(yùn)行完畢之后脐瑰,可以發(fā)現(xiàn) log 里面就出現(xiàn)了 Traceback 信息,而且給我們輸出了當(dāng)時(shí)的變量值廷臼,真的是不能再贊了苍在!結(jié)果如下:
> File "run.py", line 15, in <module>
my_function(0, 0, 0)
└ <function my_function at 0x1171dd510>
File "/private/var/py/logurutest/demo5.py", line 13, in my_function
return 1 / (x + y + z)
│ │ └ 0
│ └ 0
└ 0
ZeroDivisionError: division by zero