Node.js永远不会创build日志文件
2个nodejs脚本正在被forever
处理。 系统永远使用v0.11.1和节点v0.10.29
# forever list info: Forever processes running data: uid command script forever pid logfile uptime data: [0] D34J userdown app/main.js 7441 10950 /root/.forever/D34J.log 0:2:31:45.572 data: [1] P0BX userdown app/main.js 11242 11261 /root/.forever/P0BX.log 0:2:20:22.157 # forever logs 0 error: undefined # forever logs 1 error: undefined
问题:为什么forever
缺less创build的日志文件? 重新启动2个进程仍然不会创build任何日志文件…
目录/root/.forever
也不会显示日志文件!
# ls -la /root/.forever total 20 drwxr-xr-x 4 root root 4096 Jul 4 11:37 . drwx------ 8 root root 4096 Jul 10 13:24 .. -rw-r--r-- 1 root root 259 Jul 10 19:34 config.json drwxr-xr-x 2 root root 4096 Jul 4 11:37 pids drwxr-xr-x 2 root root 4096 Jul 10 17:12 sock
回答Shreejibawa(因为我不能评论)…
永远对辩论的顺序非常敏感。 看看他们的文档,并注意选项必须在脚本之前。
forever [action] [options] SCRIPT [script-options]
而不是: forever start bin/www -e logs/error.log -l logs/logs.log
尝试: forever start -e /path/to/logs/error.log -l /path/to/logs/logs.log your_script.js
如果你用forever your_script.js
启动你的节点进程并且不指定一个日志文件, forever
会把你的日志写到terminal上(或者Windows上的cmd
)。 forever list
运行forever list
或forever logs
时显示的日志文件并不反映实际情况,因为它不是在该场景中创build的。 但是,如果您指定日志文件,请遵循以下选项:
-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 -l console.log -e error.log your_script.log
,它们将被创build。
如果你想forever
为你自动创build一个日志文件,你必须启动你的脚本作为守护进程, forever start your_script.js
。 在这种情况下,您也可以指定您的日志文件。
在文档页面中,您可以看到所有的命令行选项。
我在OSX有同样的问题。 在OSX(至less)中, forever app.js
的命令forever app.js
在前台启动forever 过程 ,并且不会将日志写入文件,即使提供了-l和-e也是如此。 在这种情况下, forever list
列出文件,即使它不存在, forever logs i
产生的error: undefined
。
当永远DAEMON开始使用forever start app.js
,日志文件确实出现,并可以使用forever logs i
查看。