custom logging under pm2

One nifty feature is to use the logs feature in terminal:

pm2 logs [--raw]

this will live stream the all the logs. Other handy commands are:

  • pm2 flush
  • pm2 reloadLogs

When running with pm2 your application logs will reside in $HOME/.pm2/logs as described here. Verifying this locally with a simple index.js file that outputs 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

Notice how I see no console.log output here, but, if I navigate to $HOME/.pm2/logs I see

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

logs $ cat index-out-0.log
test