2013-06-17 2 views
0

Я новичок в Rails, и у меня была проблема с моим проектом Rails. Я использовал Log4r для моего регистратора. Я также использовал конфигурацию для Log4r по адресу How to configure Log4r with Rails 3.0.x?. Но когда я отправляю некоторый запрос одновременно, вывод Log4r имеет ошибку. Он неупорядочен. :(Log4r - ouput is noed

Пример об ошибке выходного файла журнала:?

Started GET "/task_results.json" for 172.29.73.182 at 2013-06-17 17:36:38 +0700 
Processing by TaskResultsController#index as JSON 

Started GET "/favicon.ico" for 172.29.73.182 at 2013-06-17 17:36:38 +0700 
Processing by ApplicationController#missing_page as 
    Parameters: {"path"=>"favicon"} 
Completed 404 Not Found in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms) 
    [1m [36m (994.0ms) [0m [1mSELECT task_result_id,task_id,worker_id,product_id,passed,date_time,details FROM task_results ORDER BY task_result_id DESC; [0m 
Completed 200 OK in 8656ms (Views: 0.2ms | ActiveRecord: 994.0ms) 

И я хочу спросить, что как я могу конфиг Log4r синхронизировать выходные Или как я могу исправить мою проблему, пожалуйста, помогите мне ...

Спасибо вам большое :) Извините, что про мой Английский: P

С уважением.

ответ

1

рубин однопоточный, поэтому я предполагаю, что вы используете свое приложение для рельсов на сервере, таком как единорог?

Единственное решение, о котором я могу думать, это временные метки (с микросекундами), а не использование многострочного журнала Rails, который не подходит ни для чего, кроме одиночных запросов в средах разработчиков. Но даже это не гарантирует «упорядоченные» журналы, потому что они могут быть записаны, когда запрос был подан или в случайное время после этого, когда буфер снова был сброшен.

Это in-depth tutorial on how to use Log4r, который также показывает, как получить пользовательские временные метки в ваших журналах и получить всю важную информацию в одной строке. Это предотвращает запись журналов из других запросов, написанных внутри вашего основного запроса, и вы можете иметь временное разрешение микросекунд и заказывать впоследствии вручную. Однако порядок не должен иметь значения, если вы используете параллельные серверы приложений, потому что заказ в любом случае не гарантируется.

Смежные вопросы