概要 Railsのログをローテートする方法はいくつかあります。 代表的なものにRailsのloggerに組み込まれているログローテーション機能を使う方法がありますが、Passenger環境で使う場合に多少の手直しが必要になってきます。(ログローテート後にPassengerがログにアクセスできなくなるためエラーが起きる) Passenger + Rails 環境でログをローテートする場合、logrotateを使うのが簡単です。 コード 次のようなファイルを作成する /etc/logrotate.d/passenger /var/www/app/az-nyan/current/log/production.log { weekly missingok rotate 30 compress delaycompress sharedscripts postrotate touch /var/w
sinsengumi_2 のプログラミング備忘録 プログラムに関して、会社や家で勉強したことを忘れないように備忘録として書き連ねています。 トップページページ一覧メンバー編集 履歴 ログローテーションをする 最終更新:sinsengumi_2 2009年06月17日(水) 14:28:14 Railsのデフォルトの設定だと、ログは同じファイルに吐かれ続けます。 ログローテーションを行うには、設定ファイルにローテートの設定を記述する必要があります。 設定は、以下のいづれかに記述します。 RAILS_ROOT/config/environment.rb RAILS_ROOT/config/environments/*.rb development環境、production環境で個別に設定したい場合は、environments以下のそれぞれの設定ファイルに記述します。 記述内容は以下。
よく Rails で class Hoge < ActiveRecord::Base .... # logger def my_log(text) Logger.new(File.join(Rails.root, "/log/my_logger.log", "daily")).info text end end などとやって,ログを出力させたりする場合がありますが,上記の場合だと毎回ファイルをオープンしてしまうので,そのコストは場合によっては馬鹿にならなくなります. そこで class Hoge < ActiveRecord::Base .... # logger def my_log(text) @@my_logger ||= Logger.new(File.join(Rails.root, "/log/my_logger.log", "daily")) @@my_logger.info
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く