Rails:ログファイルにアクセスできません
-
08-07-2019 - |
質問
Railsアプリを再起動すると、次のエラーが表示されます。私は以前、別のアプリを使用する別のサーバーでこの問題を抱えていましたが、問題の内容や解決方法を思い出せません。
Rails Error: Unable to access log file. Please ensure that /apps/staging/releases/20090310162127/log/staging.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
Ubuntuでcapistranoを使用して雑種クラスターにデプロイしています。
ls -l /apps/staging/releases/20090310162127/log/staging.log
結果は次のとおりです。
-rw-rw-rw- 1 me grp 51 Mar 10 16:07 /apps/staging/releases/20090310162127/log/staging.log
ログディレクトリは、/ apps / staging / shared / logへのリンク
です。
何が起こっているのですか?
解決
それは微妙なレールのバグであることが判明しました:
これら2行で例外が発生した場合
logger = ActiveSupport::BufferedLogger.new(configuration.log_path)
logger.level = ActiveSupport::BufferedLogger.const_get(configuration.log_level.to_s.upcase)
railsは、ログファイルが見つからないと想定しています。ただし、実際のエラーは2行目で発生しました。定数が正しくないため、NameErrorです。理由は、構成ファイルに古いログレベルがあったためです。
config.log_level = Logger::INFO
Rails 2.2は独自のロガーを使用し、上記の行を理解しません。
解決策:行を削除するか、使用:
config.log_level = :info
他のヒント
Railsは me
として実行されていますか?そうでない場合、どのユーザーとして実行されていますか?そのユーザーは jail
'ed?ユーザーは、 / apps / staging / shared / log
のすべてのコンポーネントと、 / apps / staging / releases / 20090310162127 / log
のすべてのコンポーネントに対する全探索許可を持っていますか?
所属していません StackOverflow