2012-02-21 29 views
2

ログに何か問題があります。彼らは開発には問題なく動作しますが、プロダクションでは私自身のメッセージを書くことはできません。生産現場でRailsログが正しく動作しない

私は、DeviseとMongoidをインストールする以外に、設定ファイルで何も変更していません。 production.rbでのデバッグ


コントローラー:

class PagesController < ApplicationController 
    def home 
    logger.fatal 'bla' 
    end 

    def about 
    end 
end 


ターミナル(ログ権限):

 
[email protected]:/srv/www/myapp# ls log -lah 
total 496K 
drwxr-xr-x 2 myapp root 4.0K 2012-02-21 17:18 . 
drwxr-xr-x 14 root root 4.0K 2012-02-20 14:54 .. 
-rw-r--r-- 1 myapp myapp 35K 2012-02-21 16:23 development.log 
-rw-r--r-- 1 myapp root  0 2012-02-17 18:27 .gitkeep 
-rw-r--r-- 1 root root 447K 2012-02-21 17:47 passenger.80.log 
-rw-r--r-- 1 myapp myapp  0 2012-02-21 17:18 production.log 
しかし、念のために、私はライン#のconfig.log_level =のコメントを外してみました


ターミナル(乗客):

 
[email protected]:/srv/www/myapp# passenger start -e production -p 80 --user=myapp 
=============== Phusion Passenger Standalone web server started =============== 
PID file: /srv/www/myapp/tmp/pids/passenger.80.pid 
Log file: /srv/www/myapp/log/passenger.80.log 
Environment: production 
Accessible via: http://0.0.0.0/ 

You can stop Phusion Passenger Standalone by pressing Ctrl-C. 
=============================================================================== 
cache: [HEAD /] miss 
cache: [GET /] miss 
+0

プロダクションログは作成されていますが、書き込まれていないだけですか?もしそうなら、それは少なくともそのアプリケーションがそのディレクトリへの書き込み権限を持っていることを示します。そのプロダクションログが既に存在していた場合は、新しいログが正しい場所にあることを確認していますか?アプリがCapistranoを使って配備されている私のアプリでは、ログは別のディレクトリにあります。 – Snips

+0

@snipsはい、それはlog/production.logに作成されています(元の投稿の権限を見ることができます)が、何も書き込まれていません。私はまだカピストラーノを使ったことがない、それは複雑すぎるので、私はそれについて知らない。 – HappyDeveloper

答えて

5

あなたがRails 3.2.0またはRails 3.2.1を使用していると仮定すると、これは既知の問題です(https://github.com/rails/rails/issues/4277を参照)。すでに修正されていますが、まだリリースされていません。

Rails.logger.instance_variable_get(:@logger).instance_variable_get(:@log_dest).sync = true if Rails.logger 

更新:Railsの3.2.2フィックスこの

この問題を回避するには、との初期化子を追加することです。

+0

神に感謝します。私はすでにPHPに戻ることを考えていました。私は救われました。 – HappyDeveloper

+0

Rails 3.2.2.rc1が今日出てきてこれを修正しました。最終3.2.2は来週リリースされるはずです。 –