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 listforever 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查看。