- Rubyの
Loggerクラス
を活用すると、システムの動作を追跡したりエラーを検出したりするのが簡単になります。本記事では、Loggerの基本から応用までを紹介します。
1. Loggerの基本設定
まず、Loggerを使うにはloggerライブラリをロードし、Logger.newメソッドで新しいインスタンスを作成します。ログの出力先としてファイルや標準出力を指定可能です。
require 'logger'
# ファイルにログを出力
logger = Logger.new('application.log')
# 標準出力にログを出力
# logger = Logger.new(STDOUT)
2. ログレベル
Loggerは、以下の標準ログレベルをサポートしています。デフォルトではINFOレベルが設定されています。
レベル | 解説 |
---|---|
DEBUG | デバッグ情報 |
INFO | 一般的な情報 |
WARN | 警告 |
ERROR | エラー |
FATAL | 致命的なエラー |
- 各レベルに応じて、ログメッセージを記録します。
logger.debug("デバッグメッセージ")
logger.info("情報メッセージ")
logger.warn("警告メッセージ")
logger.error("エラーメッセージ")
logger.fatal("致命的なエラーメッセージ")
3. ログレベルの設定
デフォルトのINFOレベルを変更したい場合、logger.levelで設定できます。例えば、DEBUGレベルにするとすべてのログメッセージが出力されます。
logger.level = Logger::DEBUG
4. カスタマイズ
Loggerは、フォーマットのカスタマイズも可能です。例えば、タイムスタンプのフォーマットを変更するには、datetime_format属性を設定します。
logger.datetime_format = "%Y-%m-%d %H:%M:%S"
5. 実際の使用例
以下に、ログを使用した簡単なアプリケーションの例を示します。この例では、数値を割り算する際にログを活用しています。
require 'logger'
logger = Logger.new('app.log')
logger.level = Logger::DEBUG
def divide(a, b, logger)
logger.info("Dividing #{a} by #{b}")
begin
result = a / b
logger.info("Result: #{result}")
rescue ZeroDivisionError => e
logger.error("Error: Division by zero")
end
end
divide(10, 2, logger)
divide(10, 0, logger)
- このコードを実行すると、app.logに実行ログやエラーメッセージが記録されます。Loggerを使うことで、アプリケーションの動作を詳細に記録し、後から簡単に追跡できるようになります
LoggerはRubyの標準ライブラリに含まれており、セットアップも簡単です。アプリケーションのロギングにおいて、手軽かつ強力なツールとなるため、ぜひ活用してみてください。