在之前 Python 寫 log 示範 這篇中使用 python 內建的 logging 來寫 log ,不過如果要讓他同時寫在檔案和在指令視窗中輸出需要一些步驟,使用 loguru 只要一行,就算要調整也非常簡單。在 GitHub 上面也有超過 17.4 k 的星星。
預設的顯示內容如下:
在 python 內建的 logging 中,log 有六種等級,由低到高分別是:
如果想要放在 logs 資料夾下可以這樣做:
範例輸出:
檔名: 2024-02-12_21.log
更詳細的日期格式化字串可以查看官方文件
參考資料:
GitHub - Delgan/loguru
安裝套件
使用以下指令安裝 requests 套件
pip install loguru
使用示範
from loguru import logger
logger.trace("Hello, World!")
logger.debug("Hello, World!")
logger.info("Hello, World!")
logger.success("Hello, World!")
logger.warning("Hello, World!")
logger.error("Hello, World!")
logger.critical("Hello, World!")
預設的顯示內容如下:
在 python 內建的 logging 中,log 有六種等級,由低到高分別是:
- trace: 除錯使用,包含各種最囉唆繁瑣的訊息,預設不會顯示
- debug: 除錯使用,包含各種囉唆繁瑣的訊息
- info: 資訊,一般的紀錄
- warning: 發生預期外的事情
- error: 錯誤,某些功能可能無法正常執行
- critical: 嚴重錯誤,程式本身可能無法正常執行
from loguru import logger
try:
raise Exception("Error")
except Exception as e:
logger.exception("Error")
輸出到檔案
下面是筆者最常使用的方式,每小時一個檔案:
from loguru import logger
logger.add("{time:YYYY-MM-DD_HH}.log")
logger.info("Hello, World!")
如果想要放在 logs 資料夾下可以這樣做:
from loguru import logger
logger.add("./logs/{time:YYYY-MM-DD_HH}.log")
logger.info("Hello, World!")
範例輸出:
檔名: 2024-02-12_21.log
2024-02-12 21:29:22.254 | INFO | __main__:<module>:5 - Hello, World!
更詳細的日期格式化字串可以查看官方文件
限制檔案大小和保留時間
如果怕檔案太大可以使用 rotation 參數來自動拆分檔案,也可以使用 retention 參數來限制檔案時間。
from loguru import logger
logger.add("./logs/{time:YYYY-MM-DD_HH}.log",
rotation="100 MB",
retention="10 days",
)
logger.info("Hello, World!")
在不同的程式碼中寫 log
上面用來設定 loguru 的程式碼只要寫在 main.py (或是其他用來執行的主要檔案中),在其他地方使用下面的程式碼就可以具有同樣的設定出來的效果了:
from loguru import logger
logger.info("Hello, World!")
參考資料:
GitHub - Delgan/loguru
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com