はじめに
Railsの開発を進める中で、rails serverが起動するまでの待ち時間が意外とストレスでした。
一方で、development.logに出力されるログは多すぎて...
そこで、リクエスト時のログを各コントローラのアクションごとに管理できるよう、各フォルダに分割して出力するgemを作成してみました。
custom_log_space | RubyGems.org | コミュニティのgemホスティングサービス
インストール方法
Gemfileに以下のようにgem 'custom_log_space'
を追加して、bundle install
を実行してください。
group :development do
+ gem 'custom_log_space'
end
使い方
ローカルでrailsアプリを立ち上げて、画面にアクセスすると、log/custom_log_spaceディレクトリ配下に、以下の命名規則で、ログが出力されます。
log/custom_log_space/#{コントローラー名}/#{アクション名}/#{日付}/#{時刻}.log
例
user log % tree
.
├── custom_log_space
│ └── articles_controller
│ ├── index
│ │ ├── 2023-09-19
│ │ │ ├── 09:13.log
│ │ │ └── 20:00.log
│ │ └── saved
│ └── show
│ ├── 2023-09-18
│ │ ├── 21:29.log
│ │ └── 22:02.log
│ ├── 2023-09-19
│ │ └── 20:00.log
│ └── saved
└── development.log
ログの保持ポリシー
-
#{日付}
フォルダの最大保持数は2つ、#{時刻}.log
は最大で10ファイルです。これを超えると、古いファイルから順に削除されます。 - 重要なログは
saved
ディレクトリ配下に移してください。
log/custom_log_space/#{コントローラー名}/#{アクション名}/saved/
注意点
- 一度のリクエストで複数のコントローラーのアクションが呼び出される場合、ログはそれぞれのアクションごとのフォルダに分けられます。このため、ログの追跡方法に注意が必要です。
- ただし、このgemを導入しても既存のdevelopment.logへの出力に変更はないため、引き続きそちらを参照することが可能です。