Файл журнала Rails перестает регистрироваться, если я прикасаюсь к нему. Как заставить это войти снова? - PullRequest
2 голосов
/ 30 ноября 2011

Мои файлы журнала генерируют МНОГО выходных данных, и трудно сказать, где текущее действие, на которое я смотрю, начало регистрироваться.Хотя это было бы так же просто, как удалить то, что в данный момент находилось в файле журнала, непосредственно перед выполнением действия (или, по крайней мере, добавить несколько разделителей), но редактирование файлов журнала, кажется, заставляет приложение полностью прекратить регистрацию!Я могу сбросить приложение, чтобы снова начать его запись в журнал, но это возвращает меня к исходной точке - копаться в целой куче ненужных журналов, не зная, где именно те биты, которые я на самом деле хотел запустить.редактировать лог-файл, не убивая способность Rail к логингу?

Ответы [ 2 ]

8 голосов
/ 30 ноября 2011

Вместо удаления файла выполните

cat /dev/null > log/production.log # or whatever the path to your file is

Проблема в том, что при удалении файла в Rails по-прежнему открыт файл, поэтому он продолжает запись в этот теперь «удаленный» файл. Записав файл / dev / null в файл, вы очистите все его содержимое, не изменяя, куда записывается дескриптор файла.

2 голосов
/ 30 ноября 2011

Мое лучшее предположение относительно того, почему это происходит, заключается в том, что поток ввода-вывода прерывается и повреждается (потому что вы изменяете файл), пока он открыт (ваше приложение работает).Вам нужно либо перезапустить приложение, либо использовать решение Роба .

Однако альтернативным решением является использование tail для просмотра только последних 10 строк, вы можете указать больше строк с помощью tail -n 30 или любую другую сумму, которую вы пожелаете.Еще лучшее решение - использовать tail -f, который покажет хвост файла, а затем распечатает новые данные по мере их записи в файл;очень полезно для мониторинга файлов журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...