Где навсегда хранить вывод console.log?

105

Я установил навсегда и использую его, нахожу довольно забавным.

Но я понял, что логи куда-то кладут. Есть какие-нибудь советы?

AGamePlayer
источник

Ответы:

135

Forever принимает параметры командной строки для вывода:

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

Например:

forever start -o out.log -e err.log my-script.js

Смотрите здесь для получения дополнительной информации

Bryanmac
источник
7
каков путь по умолчанию, если я не указываю никаких параметров, а просто использую как forever myapp? Спасибо!
AGamePlayer 09
3
Я не вижу это задокументировано - я думаю, что со временем это изменилось. Я вижу старые журналы в папке ~ / .forever. Но я обновился совсем недавно, и, по крайней мере, на моем Mac, если я не укажу имя файла журнала, он записывает console.log в терминал.
bryanmac
1
-a также необходим как опция, если файлы уже существуют. навсегда -a -o out.log -e err.log my-script.js
swateek
2
В чем разница между LOGFILE и OUTFILE? Мне кажется, что они содержат точно такую ​​же информацию!
Доминик
3
@Dominic LOGFILE включает весь вывод, включая вывод процесса forever, OUTFILE включает только стандартный вывод из вашего дочернего скрипта.
Joseph238
81

Forever по умолчанию помещает журналы в случайный файл в ~/.forever/папке.

Вы должны запустить, forever listчтобы увидеть запущенные процессы и соответствующий им файл журнала.

Пример вывода

>>> forever list
info:    Forever processes running
data:        uid  command       script forever pid  logfile                         uptime
data:    [0] 6n71 /usr/bin/node app.js 2233    2239 /home/vagrant/.forever/6n71.log 0:0:0:1.590

Однако, вероятно, лучше всего указать, -lкак упоминалось bryanmac.

Лиянь Чанг
источник
1
Это не всегда случайный файл. Если вы указали uid с флагом --uid при запуске, тогда будет создан файл журнала с использованием указанного uid.
ddelrio1986 05
12

попробуйте команду

> forever logs

или

> sudo forever logs

вы получите местоположение файла журнала

Moh .S
источник
5

Это сработало для меня:

forever -a -o out.log -e err.log app.js
Зубайр
источник
5

forever start script.js Для запуска необходимо выполнить обычную работу, а для проверки журналов консоли / ошибок используйте forever logs это, чтобы распечатать список всех журналов, которые хранятся навсегда, а затем вы можете использовать, tail -f /path/to/logs/file.logи это будет печатать живые журналы в вашем окне. нажмите ctrl + z, чтобы остановить печать журналов.

БанвариЛал Бамалва
источник
3

Это старый вопрос, но я столкнулся с теми же проблемами. Если вы хотите увидеть результат в реальном времени, вы можете запустить

forever logs

Это покажет путь к файлу журналов, а также номер сценария. Затем вы можете использовать

forever logs 0 -f

0 следует заменить номером скрипта, для которого вы хотите увидеть результат.

хан
источник
1

Помощь - ваш лучший спаситель, есть действие с журналами, которое вы можете вызвать, чтобы проверить журналы всех запущенных процессов.

forever --help

Показывает команды

logs                Lists log files for all forever processes
logs <script|index> Tails the logs for <script|index>

Пример вывода приведенной выше команды для трех запущенных процессов. Вывод console.log хранится в этих журналах.

info:    Logs for running Forever processes
data:        script    logfile
data:    [0] server.js /root/.forever/79ao.log
data:    [1] server.js /root/.forever/ZcOk.log
data:    [2] server.js /root/.forever/L30K.log
bhupen.chn
источник
1

По умолчанию навсегда помещает все необходимые файлы в /$HOME/.forever. Если вы хотите изменить это местоположение, просто установите переменную среды FOREVER_ROOT, когда вы работаете вечно:

FOREVER_ROOT=/etc/forever forever start index.js
Loup G
источник
0

Вам необходимо добавить спецификаторы места назначения журнала перед именем файла для запуска. Так

навсегда -e /path/error.txt -o /path/output.txt start index.js

user450821
источник
0

На основе ответа bryanmac. Я просто сохраняю все логи в один файл и потом читаю его хвостом. Простой, но эффективный способ сделать это.

forever -o common.log -e common.log index.js && tail -f common.log

Niko9911
источник