Ich schreibe gerade ein Projekt in Ruby, das den ActiveRecord Edelstein für die Datenbankinteraktion verwendet und ich versuche, alle Datenbankaktivitäten mit dem ActiveRecord::Base.logger
Attribut mit dem folgenden CodeRuby Daemons verursacht ActiveRecord Logger IOError
ActiveRecord::Base.logger = Logger.new(File.open('logs/database.log', 'a'))
Dies funktioniert gut für Wanderungen usw. (die aus irgendeinem Grunde, dass die Anmeldung zu verlangen scheinen aktiviert sein, da es einen NilClass Fehler gibt, wenn sie deaktiviert ist), aber wenn ich versuche, das Projekt auszuführen, die die Active Aufruf ein Gewinde Daemon Objekt das Skript schlägt mit dem folgenden Fehler fehl
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/logger.rb:504:in `write': closed stream (IOError)
Irgendwelche Ideen auf, wie man dieses Problem löst, würde sehr geschätzt. Im Moment habe ich begonnen, durch einen anderen Code, um zu sehen, wenn Menschen andere Möglichkeiten haben Active Protokollierung der Implementierung in einer Thread-sichere Weise
Dank
Patrick
würde das Problem stammen aus Synchronisation? Könnten Sie stattdessen Rails 'BufferedLogger verwenden und sehen, ob das das Problem behebt? –
Wir haben am Ende eine einfache Logging-Anwendung für unsere Bedürfnisse mit DRB geschrieben, die Fehler für alle unsere Threads behandelt –