Loguru基礎教程


Python模塊之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")

# 日志格式和存入日志級別
logger.add("test.log", format="{time}|{level}|{message}", level="INFO")

# 序列化日志
logger.add("test.log", serialize=True)

# 按照日志大小自動切割日志,還可以按照時間切割:rotation='00:00',rotation='1 week',我們想要設置日志文件最長保留10天,retention='10 days'
logger.add("test.log", rotation="500 MB")

# loguru 還可以配置文件的壓縮格式,比如使用 zip 文件格式保存
logger.add('runtime.log', compression='zip')

# 在很多情況下,如果遇到運行錯誤,而我們在打印輸出 log 的時候萬一不小心沒有配置好 Traceback 的輸出,很有可能我們就沒法追蹤錯誤所在了。但用了 loguru 之后,我們用它提供的裝飾器就可以直接進行 Traceback 的記錄,類似這樣的配置即可:
@logger.catch
def my_function(x, y, z):
    # An error? It's caught anyway!
    return 1 / (x + y + z)

# 我們做個測試,我們在調用時三個參數都傳入 0,直接引發除以 0 的錯誤,看看會出現什么情況:
my_function(0, 0, 0)

# 運行完畢之后,可以發現 log 里面就出現了 Traceback 信息,而且給我們輸出了當時的變量值,真的是不能再贊了!結果如下:

> 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


免責聲明!

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



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