永远将console.log输出存储在哪里?


105

我永久安装并正在使用它,发现它很有趣。

但是我意识到日志被放置在其他地方。有什么提示吗?

Answers:


135

永远使用命令行选项进行输出:

-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 start -o out.log -e err.log my-script.js

这里获取更多信息


7
如果我不指定任何参数而是使用like,则默认路径是什么forever myapp?谢谢!
AGamePlayer 2014年

3
我没有看到它的记录-我认为它随着时间而改变。我在〜/ .forever文件夹中看到旧日志。但是我是最近更新的,至少在Mac上,如果我未指定日志文件名,则会将console.log写入终端。
bryanmac 2014年

1
如果文件已经存在,则还需要-a作为选项。永远-a -o out.log -e err.log my-script.js
swateek '16

2
LOGFILE和OUTFILE有什么区别?对我来说,它们似乎包含完全相同的信息!
多米尼克

3
@Dominic LOGFILE包括所有输出,包括永久进程的输出,OUTFILE仅包括子脚本的stdout。
Joseph238

81

永远,默认情况下,会将日志放入文件~/.forever/夹中的随机文件中。

您应该运行forever list以查看正在运行的进程及其相应的日志文件。

样品输出

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

但是,最好-l由bryanmac提及来指定。


1
它并不总是随机文件。如果在启动时使用--uid标志指定了一个uid,则它将使用指定的uid创建一个日志文件。
ddelrio1986


12

尝试命令

> forever logs

要么

> sudo forever logs

您将获得日志文件的位置



5

需要正常 forever start script.js 启动才能使用,并检查控制台/错误日志, forever logs 这将打印永久存储的所有日志的列表,然后您可以使用tail -f /path/to/logs/file.log,这会将实时日志打印到您的窗口。按ctrl + z停止打印日志。


3

这是一个古老的问题,但我遇到了同样的问题。如果您想查看实时输出,可以运行

forever logs

这将显示日志文件的路径以及脚本的编号。然后,您可以使用

forever logs 0 -f

0应该替换为您想查看其输出的脚本编号。


1

帮助是您的最佳选择,您可以调用日志操作来检查所有正在运行的进程的日志。

forever --help

显示命令

logs                Lists log files for all forever processes
logs <script|index> Tails the logs for <script|index>

上面命令的输出示例,用于运行三个进程。console.log输出存储在这些日志中。

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

1

默认情况下,永远将所需的所有文件放入/$HOME/.forever。如果您想更改该位置,只需在永远运行时设置FOREVER_ROOT环境变量即可:

FOREVER_ROOT=/etc/forever forever start index.js

0

您需要在运行文件名之前添加日志目标说明符。所以

永远-e /path/error.txt -o /path/output.txt开始index.js


0

基于bryanmac的答案。我只是将所有日志保存到一个文件中,然后用尾巴读取它。简单但有效的方法来做到这一点。

forever -o common.log -e common.log index.js && tail -f common.log

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.