質問

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 のすべてのコンポーネントに対する全探索許可を持っていますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top