Как отключить навсегда (nodejs)

Я использую навсегда (https://github.com/nodejitsu/forever) для запуска моего приложения nodejs:

forever start app.js

Тем не менее, он создает ОГРОМНЫЕ файлы журнала. Через 2 дня у меня 8 ГБ логов. Все журналы хранятся в /home/.forever

Можно ли отключить функцию ведения журнала из командной строки или мне нужно как-то отредактировать свое приложение?


person alias51    schedule 18.12.2013    source источник
comment
Сколько печатает ваше приложение?   -  person Corey Ogburn    schedule 18.12.2013
comment
Он изрядно выплевывает через console.log(). Делает ли console.log() в приложении запись в файл журнала (я думал, что это просто браузер)?   -  person alias51    schedule 18.12.2013
comment
Согласно их сообщению в блоге в разделе Дополнительные параметры навсегда: Если не указано иное, вывод stdout и stderr дочернего процесса будет записан в [основной файл журнала].   -  person Corey Ogburn    schedule 18.12.2013


Ответы (2)


console.log() записывает в стандартный вывод вашего процесса (stdout), поэтому вы можете указать forever сохранить вывод stdout в /dev/null:

$ forever -o /dev/null index.js
person Paul Mougel    schedule 18.12.2013
comment
Спасибо, что это дает? Является ли /dev/null пустой областью диска? - person alias51; 18.12.2013
comment
Это пустое устройство, которое никогда ничего не хранит и при чтении ничего не возвращает (хотя чтение будет успешным). - person Corey Ogburn; 18.12.2013
comment
Действительно, /dev/null — это виртуальный файл, который на самом деле не существует, но в который приложения могут писать. Все, что написано на /dev/null, забыто. - person Paul Mougel; 18.12.2013
comment
Если вы используете это в Windows, используйте NUL - person Corey Ogburn; 18.12.2013
comment
Данные даже не коснутся диска. На самом деле я не знаю, как влияет на производительность использование /dev/null, но я думаю, что это незначительно: см. этот соответствующий ответ. - person Paul Mougel; 18.12.2013

Ответ Пола не сработал для меня, но дал мне несколько советов о том, как это сделать:

forever start -o /dev/null -l /dev/null -a script.js

Из документации:

-l  LOGFILE      Logs the forever output to LOGFILE
-o  OUTFILE      Logs stdout from child script to OUTFILE

В зависимости от вашего процесса вам также может понадобиться перенаправить STDERR:

-e  ERRFILE      Logs stderr from child script to ERRFILE
person Hoffmann    schedule 06.02.2018