Piszę teraz projekt w języku Ruby, który korzysta z klejnotu ActiveRecord do interakcji z bazą danych i próbuję zarejestrować całą działalność bazy danych za pomocą atrybutu ActiveRecord::Base.logger
z następującym kodem:Demony Rubiego wywołujące rejestrator ActiveRecord IOError
ActiveRecord::Base.logger = Logger.new(File.open('logs/database.log', 'a'))
działa to dobrze dla migracje itp (które z jakiegoś powodu wydaje się wymagać rejestrowanie być włączony, ponieważ daje błąd NilClass gdy jest wyłączona), ale gdy próbuję uruchomić projekt, który zawiera gwintowaną demona wywołanie ActiveRecord obiekt skrypt nie powiedzie się z następującym błędem:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/logger.rb:504:in `write': closed stream (IOError)
Wszelkie pomysły na rozwiązanie tego problemu byłyby bardzo cenne. W tej chwili zacząłem patrzeć przez inny kod, aby zobaczyć, czy ludzie mają inne sposoby realizacji rejestrowanie ActiveRecord w bardziej bezpieczny wątku sposób
Thanks
Patricka
Czy trzpień Problem z synchronizacją? Czy mógłbyś zamiast tego użyć Rails 'BufferedLogger i sprawdzić, czy to rozwiązało problem? –
W końcu napisaliśmy prostą aplikację do rejestrowania dla naszych potrzeb, używając DRB, który obsługiwał błędy dla wszystkich naszych wątków. –