14

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 でカピストラーノを使用して雑種クラスターにデプロイしています。

私がする時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

ログ ディレクトリはlink/apps/staging/shared/log です。

どうしたの?

4

2 に答える 2

27

それは微妙なレールのバグであることが判明しました:

これらの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
于 2009-03-11T00:56:52.977 に答える
0

Rails は として実行されていmeますか? そうでない場合、それはどのユーザーとして実行されていますか? そのユーザーはjail「ed」ですか?/apps/staging/shared/logユーザーは、 のすべてのコンポーネントだけでなく、 のすべてのコンポーネントに対する走査権限を持っています/apps/staging/releases/20090310162127/logか?

于 2009-03-10T23:05:33.553 に答える