Estoy escribiendo un proyecto por el momento en Ruby que hace uso de la gema ActiveRecord para la interacción de la base de datos y estoy tratando de registrar toda la actividad de la base de datos usando el atributo ActiveRecord::Base.logger
con el siguiente códigoRuby Daemons causando ActiveRecord logger IOError
ActiveRecord::Base.logger = Logger.new(File.open('logs/database.log', 'a'))
Esto funciona muy bien para las migraciones, etc (que por alguna razón parecen requerir que el registro esté habilitado, ya que da un error de NilClass cuando está desactivado) pero cuando trato de ejecutar el proyecto que incluye un demonio roscado llamando al ActiveRecord objeto el script falla con el siguiente error
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/logger.rb:504:in `write': closed stream (IOError)
Cualquier idea sobre cómo resolver este problema sería muy apreciada. Por el momento he empezado a mirar a través de otro tipo de código para ver si la gente tiene otras formas de implementar el registro de ActiveRecord de una manera más segura para los subprocesos
Gracias
Patrick
¿El tallo problema de la sincronización? ¿Podría usar el BufferedLogger de Rails en su lugar y ver si eso solucionó el problema? –
Terminamos escribiendo una aplicación de registro simple para nuestras necesidades usando DRB que manejaba errores para todos nuestros hilos –