Log4r - выход неупорядочен

Я новичок в Rails, и у меня была проблема с моим проектом Rails. Я использовал Log4r для моего регистратора. Я также использовал config для Log4r на Как настроить Log4r с Rails 3.0.x?, Но когда я посылаю какой-то запрос одновременно, вывод Log4r имеет ошибку. Это неупорядочено.:(

Пример файла регистрации ошибок:

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 для синхронизации вывода? Или как я могу исправить мою проблему?

1 ответ

Решение

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

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

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

Другие вопросы по тегам