Pythonのログ出力をもっとスマートに!「loguru」で始める美しく簡単なロギング

投稿者: | 2026-08-22

みなさん、こんにちは。日々Pythonでコードを書いている中で、「ログ出力の設定って少し面倒だな」と感じたことはありませんか? 標準の `logging` モジュールは多機能で素晴らしいのですが、初期設定のために多くのコードを書く必要があり、初心者にとっては少しハードルが高く感じられることもあります。 そこで今回は、そんな悩みを一瞬で解決してくれる、美しくて非常に使いやすいサードパーティ製ライブラリ「loguru」をご紹介します。シンプルでありながら強力なこのライブラリを使って、ログ管理をもっと楽しく、スマートにしてみましょう。

loguruとは?

loguruは、「Out-of-the-box(箱から出してすぐに使える)」をコンセプトに設計されたPython用のロギングライブラリです。面倒な設定ファイルを記述することなく、インポートするだけで直感的に、かつカラフルで見やすいログを出力することができます。

標準のloggingモジュールだと、出力フォーマットを指定するだけで10行近くコードを書くこともありますが、loguruならその手間が一切不要になります!

loguruを導入するメリット

  • 初期設定が不要: from loguru import logger と記述するだけで、すぐにログを出力できます。
  • デフォルトで美しく色分けされたコンソール出力: ログの重要度(INFO、WARNING、ERRORなど)に応じて自動で色分けされ、タイムスタンプや実行された関数名、行数なども見やすく表示されます。
  • 直感的なファイル保存とローテーション: ログファイルを保存する際、「ファイルサイズが10MBを超えたら新しいファイルにする」「1週間経ったら古いログを削除する」といった運用ルールを、わずか1行で指定できます。
  • 強力な例外(スタックトレース)の可視化: エラーが発生した際、どの変数の値が原因だったのかまで含めて、非常に視覚的で分かりやすいスタックトレースを表示してくれます。

インストール方法

まずは、pipを使ってライブラリをインストールします。

pip install loguru

サンプルコード

loguruの基本的な使い方から、ファイルへの出力設定、そして便利なエラーキャッチ機能までを体験できるサンプルコードです。

import sys
from loguru import logger

# 1. コンソールへの簡単な出力
# インポートするだけで、すぐに色付きのログが出力できます
logger.info("プログラムが開始されました。")
logger.warning("注意が必要な処理が発生しました。")

# 2. ログファイルへの保存(ローテーションと保持期間の設定)
# ログファイルが10MBに達したら新しいファイルを作成し、過去10日分だけ保持します
logger.add("app.log", rotation="10 MB", retention="10 days", level="DEBUG")
logger.debug("このメッセージはファイル「app.log」にも保存されます。")

# 3. エラーの自動キャッチ(デコレータ機能)
# @logger.catch を使うと、関数内でエラーが発生した際、詳細な情報をログに残せます
@logger.catch
def divide_numbers(a, b):
    return a / b

# 意図的にゼロ除算エラー(ZeroDivisionError)を発生させます
logger.info("計算処理を実行します...")
divide_numbers(10, 0)

@logger.catchデコレータは、エラーの発生場所だけでなく、その時の変数の中身(状態)まで詳細に出力してくれるので、デバッグ作業が劇的に楽になりますよ。

みーちゃんのワンポイント

loguruは標準の logging モジュールと競合せず共存できますが、DjangoやFastAPIといったフレームワークと組み合わせる際は、フレームワーク側のログ出力をloguruへ統合(リダイレクト)する設定が必要になることがあります。既存の大きなプロジェクトに導入する際は、二重に出力されてしまわないように設定を確認しておくとスムーズですよ。