loguruの使い方
概要
- pythonの標準loggerよりだいぶ簡単にしたもの
- 必要な機能はレシピを見ると書いてあることが多い
- コピペで必要なログ機能を作ることができる
インストール
$ python3 -m pip install loguru
参考
ログレベルの種類とログレベルの設定
- 各種類
TRACE
- 5
logger.trace()
DEBUG
- 10
logger.debug()
INFO
- 20
logger.info()
SUCCESS
- 25
logger.success()
WARNING
- 30
logger.warning()
ERROR
- 40
logger.error()
CRITICAL
- 50
logger.critical()
ログレベルをINFOにして実行
$ LOGURU_LEVEL=INFO python3 <script-name>.py
ある特定のフォーマットでINFO以上のレベルでstderrで表示する
import sys
from loguru import logger
logger.remove() # デフォルの設定をクリア
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")
ログをファイルに保存する
import sys
from loguru import logger
logger.remove() # デフォルの設定をクリア
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")
logger.add("file_{time}.log")
ファイルに保存しつつ、標準出力にも出す
from loguru import logger
import sys
logger.remove()
logger.add(sys.stdout, level="INFO")
logger.add("logs.log")
logger.remove()
でデフォルトのlogger
を削除することで重複のアウトプットを防ぐlogger.add(sys.stdout, ...)
とlogger.add("{FILENAME.log}")
は共存できる
jupyterでも使う
from loguru import logger
import sys
logger.remove()
logger.add(sys.stdout, level="INFO")
logger.info("message") # 2021-12-21 04:39:12.625 | INFO | __main__:<module>:5 - aaaa
- デフォルトの出力がうまく描画されないので
logger.remove()
してからセットアップする