pm2下的自定义日志记录

use*_*319 10 logging node.js pm2

我在我写的节点应用程序中有一些有用的日志记录 console.log

node server.js >> /var/log/nodeserver.log 2>&1
Run Code Online (Sandbox Code Playgroud)

但是,在pm2下尝试相同时:

pm2 start server.js >> /var/log/pm2server.log 2>&1
Run Code Online (Sandbox Code Playgroud)

日志文件仅显示pm2启动信息

应用程序是否可以使用pm2进行日志记录?在他们的页面上,他们讨论日志记录,并显示带有文本的图像"log message from echo.js",但我没有看到将自定义信息输入pm2日志.

Phi*_*ien 10

使用pm2运行时,应用程序日志将按此处$HOME/.pm2/logs所述驻留.使用输出的简单文件在本地验证index.jsconsole.log('test')

$ pm2 start index.js
[PM2] Spawning PM2 daemon
[PM2] PM2 Successfully daemonized
[PM2] Starting index.js in fork_mode (1 instance)
[PM2] Done.
????????????????????????????????????????????????????????????????????????????????????
? App name ? id ? mode ? pid   ? status ? restart ? uptime ? memory     ? watching ?
????????????????????????????????????????????????????????????????????????????????????
? index    ? 0  ? fork ? 36976 ? online ? 0       ? 0s     ? 9.258 MB   ? disabled ?
????????????????????????????????????????????????????????????????????????????????????
 Use `pm2 show <id|name>` to get more details about an app
Run Code Online (Sandbox Code Playgroud)

注意我console.log在这里看不到输出,但是,如果我导航到$HOME/.pm2/logs我看到

logs $ ls
index-error-0.log   index-out-0.log

logs $ cat index-out-0.log
test
Run Code Online (Sandbox Code Playgroud)

  • 你确定可以看看[这里的选项列表](http://pm2.keymetrics.io/docs/usage/quick-start/#options),特别是`-l`,`-o`和`-e` (3认同)
  • 我不想将信息日志写到文件中。我只想在生产中继续登录控制台,不应创建任何文件,如何使用 pm2 做到这一点? (2认同)

Yan*_*oto 5

一个漂亮的功能是使用logs终端功能:

pm2 logs [--raw]
Run Code Online (Sandbox Code Playgroud)

这将直播所有日志.其他方便的命令是:

  • pm2 flush
  • pm2 reloadLogs