Я сейчас пишу проект на Ruby, который использует гем ActiveRecord для взаимодействия с базой данных, и я пытаюсь регистрировать всю активность базы данных, используя атрибут ActiveRecord::Base.logger
со следующим кодом
ActiveRecord::Base.logger = Logger.new(File.open('logs/database.log', 'a'))
Это прекрасно работает для миграций и т. Д. (Которые по некоторым причинам, по-видимому, требуют, чтобы протоколирование было включено, так как оно выдает ошибку NilClass, когда оно отключено), но при попытке запустить проект, который включает в себя многопоточный демон, вызывающий объект ActiveRecord, сценарий завершается со следующей ошибкой
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/logger.rb:504:in `write': closed stream (IOError)
Буду очень признателен за любые идеи о том, как решить эту проблему. На данный момент я начал просматривать другой код, чтобы увидеть, есть ли у людей другие способы реализовать ведение журнала ActiveRecord более поточно-ориентированным способом
Спасибо
Патрик