• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

loguru

date: 2021-02-13 excerpt: loguruの使い方

tag: pythonloguruloglogger


loguruの使い方

概要

  • pythonの標準loggerよりだいぶ簡単にしたもの
  • 必要な機能はレシピを見ると書いてあることが多い
  • コピペで必要なログ機能を作ることができる

インストール

$ python3 -m pip install loguru

参考

  • GitHub
  • レシピ

ログレベルの種類とログレベルの設定

  • 各種類
    • 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()してからセットアップする


pythonloguruloglogger Share Tweet