В задаче граблей, если я использую, помещает команду тогда, я вижу вывод на консоли. Однако я не буду видеть, что сообщение в файле журнала, когда приложение будет развернуто на производстве.
Однако, если я говорю, что Rails.logger.info тогда в режиме разработки ничего не вижу на консоли. Я должен перейти к файлу журнала и хвосту это.
Я идеально хотел бы использовать Rails.logger.info и в режиме разработки в задаче граблей, вывод от регистратора должен также быть отправлен в консоль.
Существует ли способ достигнуть этого?
Задачи Rake запускаются пользователем из командной строки. Все, что им нужно знать сразу («обработанные 5 строк»), следует вывести на терминал с помощью put
.
Все, что необходимо сохранить для потомков ("электронное письмо с предупреждением отправлено на (скрыто), следует отправлять на Rails.logger
.
Я бы сказал, что лучше всего использовать Rails.logger.info
.
Вы не сможете увидеть его в консоли сервера, потому что он не будет работать через сервер. Просто откройте новую консоль и tail -f
файл журнала, это поможет.
Многим пользователям известна команда UNIX® 'tail', которую можно использовать для отображения последних нескольких строк большого файла . Это может быть полезно для просмотра файлов журнала и т. Д.
Еще более полезным в некоторых ситуациях является параметр '-f' команды 'tail' . Это заставляет tail "следовать" за выводом файла. Первоначально ответ будет таким же, как и для 'хвоста' сам по себе - будут отображаться последние несколько строк файла. Однако, команда не возвращает в приглашение, а вместо этого продолжает "следовать" за файлом. Когда в файл добавляются дополнительные строки , они будут отображаться на терминале. Это очень полезно для просмотра файлов журнала или любого другого файла, который может добавляться с течением времени. Введите "человеческий хвост" для получения дополнительных сведений об этом и других вариантах хвоста.
( через )
Как насчет создания помощника приложения, который определяет, какая среда запущена и делает правильные действия?
def output_debug(info)
if RAILS_ENV == "development"
puts info
else
logger.info info
end
end
Затем вызовите output_debug вместо put или logger.info