0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RubyのLoggerを使った効率的なログ管理

Last updated at Posted at 2017-04-07
  • 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の標準ライブラリに含まれており、セットアップも簡単です。アプリケーションのロギングにおいて、手軽かつ強力なツールとなるため、ぜひ活用してみてください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?