在pm2下自定义日志logging
我有一些有用的日志logging在我写给console.log
节点应用程序中
node server.js >> /var/log/nodeserver.log 2>&1
但是,当在pm2下尝试相同的时候:
pm2 start server.js >> /var/log/pm2server.log 2>&1
日志文件只显示pm2的启动信息
是应用程序日志尽可能与pm2 ? 在他们的页面上,他们讨论日志logging,并用"log message from echo.js"
等文本显示图像,但是我没有看到将定制信息导入pm2日志 。
当使用$HOME/.pm2/logs
运行时,您的应用程序日志将驻留在$HOME/.pm2/logs
,如此处所述。 用一个简单的index.js
文件在本地validation它,输出console.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
注意我在这里看不到console.log
输出, 但是 ,如果我导航到$HOME/.pm2/logs
我就会看到
logs $ ls index-error-0.log index-out-0.log logs $ cat index-out-0.log test
一个漂亮的function是使用terminal中的logs
function:
pm2 logs [--raw]
这将生活stream所有的日志。 其他方便的命令是:
-
pm2 flush
-
pm2 reloadLogs
2017年更新。
当执行pm2命令时,将日志path定义为参数( -l
, -o
, -e
)非常容易使用,通常是最好的select。
但是,如果每次执行error_file
时不想定义日志path,则可以生成一个configuration文件,定义error_file
和out_file
,然后从中启动error_file
:
-
生成configuration文件:
pm2 ecosystem simple
。 这将生成一个文件ecosystem.config.js
,其中包含以下内容:module.exports = { apps : [{ name : "app1", script : "./app.js" }] }
-
在文件中定义
error_file
(对于错误日志)和out_file
(对于信息日志),例如:module.exports = { apps : [{ name : "app1", script : "./app.js", error_file : "./err.log", out_file : "./out.log" }] }
-
从configuration文件启动进程:
pm2 start ecosystem.config.js
这样,日志就被保存到./err.log
和./out.log
。
有关详细信息,请参阅文档 。