簡體   English   中英

Node.js Forever不會創建日志文件

[英]Node.js Forever is not creating Log files

forever處理2個nodejs腳本。 系統永遠使用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丟失創建的日志文件? 重新啟動2個進程仍然不會創建任何日志文件...

目錄/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

如果您使用forever your_script.js啟動節點進程並且未指定日志文件,則forever會將您的日志寫入終端(或Windows上的cmd )。 forever list運行forever listforever logs時顯示的日志文件不能反映現實,因為它不是在該場景中創建的。 但是,如果您指定日志文件,請遵循以下選項:

-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 ,它們將被創建。

如果您希望forever為您自動創建日志文件,則必須將腳本作為守護程序forever start your_script.js ,並forever start your_script.js 在這種情況下,您還可以指定日志文件。

docs頁面中,您可以看到所有命令行選項。

回答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

我在OSX中遇到了同樣的問題。 在OSX(至少)中,命令forever app.js在前台啟動永久進程 ,並且不將日志寫入文件,即使提供了-l和-e也是如此。 在這種情況下, forever list列出文件,即使它不存在, forever logs i產生error: undefined

當永遠DAEMON使用forever start app.js ,日志文件會出現並可以使用forever logs i查看。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM