为什么不是永远的错误消息被logging

我目前正在运行一个bash脚本:

forever -v -l log/system.log -e log/systemerr.log -w --watchIgnore '{log,data,node_modules}' app.js 

我也使用log4js捕获我的应用程序的日志logging(使用以下configuration):

 log4js.configure({ appenders: [ //{ type: 'console' }, { type: "file", absolute: true, filename: "./log/app.log", maxLogSize: 1000000, backups: 10 } ]}); 

一切似乎都在工作,因为我的应用程序的输出被输出到app.log和永远的-l输出是去system.log:

 warn: --minUptime not set. Defaulting to: 1000ms warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms 

但以下去控制台,我会认为这将去systemerr.log:

 error: Could not read .foreverignore file. error: ENOENT, open '/home/blah/blah/.foreverignore' error: Forever detected script exited with code: 1 error: Script restart attempt #1 

我怎么能得到这个错误信息,我认为这是永远生成systemerr.log?

永远 -e ERRFILE选项:

将stderr从子脚本logging到ERRFILE

永远本身产生的错误不会被logging在这里,这是很好的,因为你只能在这里得到你的应用程序产生的错误。

如果你真的想得到文件中的永久性错误使用STDERR IOredirect在你的包装bash脚本是这样的:

 forever ... 2>> forever-errors.log 

如果您仍然因某种原因想要将这些错误与应用程序错误日志相同的文件中,您可能会redirect并将STDERR附加到与错误日志相同的文件。