Frage

Ich erhalte die folgende Fehlermeldung, wenn meine Rails-Anwendung neu starten. Ich habe vor, dieses Problem habe, auf einem anderen Server mit einer anderen Anwendung, kann aber nicht daran erinnern, was das Problem war, oder wie ich es gelöst.

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.

Ich bin die Bereitstellung auf einen Mischlings Cluster mit Capistrano auf Ubuntu.

Wenn ich ls -l /apps/staging/releases/20090310162127/log/staging.log

ist das Ergebnis:

-rw-rw-rw- 1 me grp 51 Mar 10 16:07 /apps/staging/releases/20090310162127/log/staging.log

Das Protokoll dir ist ein link zu / apps / staging / shared / log.

Was ist los?

War es hilfreich?

Lösung

Es stellte sich heraus eine subtile Schienen Bug zu sein:

Wenn eine Ausnahme in diesen beiden Linien angehoben

logger = ActiveSupport::BufferedLogger.new(configuration.log_path)
logger.level = ActiveSupport::BufferedLogger.const_get(configuration.log_level.to_s.upcase)

Schienen nehmen sie nicht die Protokolldatei finden. Jedoch trat der tatsächliche Fehler in der zweiten Zeile: eine Nameerror, weil die Konstante falsch ist. Der Grund dafür ist, dass es ein Vermächtnis Protokollebene in meiner Konfigurationsdatei war:

config.log_level = Logger::INFO

Rails 2.2 einen eigenen Logger verwendet, und nicht verstehen, die über die Linie.

Lösung: entfernen Linie oder die Verwendung:

config.log_level = :info

Andere Tipps

Ist Rails läuft als me? Falls nicht, welche Benutzer ist es läuft wie? Ist das Benutzer jail'ed? Hat der Benutzer für alle Komponenten von /apps/staging/shared/log Transitrechte haben sowie alle Komponenten des /apps/staging/releases/20090310162127/log?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top