I installed forever and am using it, finding it quite funny.
But I realized that the logs are placed to somewhere else. Is there any tips?
Forever takes command line options for output:
-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
For example:
forever start -o out.log -e err.log my-script.js
See here for more info
Forever, by default, will put logs into a random file in ~/.forever/
folder.
You should run forever list
to see the running processes and their corresponding log file.
Sample output
>>> 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
However, it's probably best to specify with -l
as mentioned by bryanmac.
if you run the command "forever logs", you can see where are the logs files.
try the command
> forever logs
or
> sudo forever logs
you will get the log file's location
This worked for me :
forever -a -o out.log -e err.log app.js
Need to do normal
forever start script.js
to start, and to check console/error logs use
forever logs
this will print list of all logs being stored by forever
and then you can use tail -f /path/to/logs/file.log
and this will print live logs to your window. hit ctrl+z to stop logs print.
Help is your best saviour, there is a logs action that you can call to check logs for all running processes.
forever --help
Shows the commands
logs Lists log files for all forever processes
logs <script|index> Tails the logs for <script|index>
Sample output of the above command, for three processes running. console.log output's are stored in these logs.
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
You need to add the log destination specifiers before the filename to run. So
forever -e /path/error.txt -o /path/output.txt start index.js
Based on bryanmac's answer. I'm just saving all logs into one file and then reading it with tail. Simple, but effective way to do this.
forever -o common.log -e common.log index.js && tail -f common.log
By default forever places all of the files it needs into /$HOME/.forever. If you would like to change that location just set the FOREVER_ROOT environment variable when you are running forever:
FOREVER_ROOT=/etc/forever forever start index.js
来源:https://stackoverflow.com/questions/21021186/where-does-forever-store-console-log-output