Pm2 changing log file location
Just wanted to add to @shaochuancs answer, that before doing step 3, make sure you delete the old process. If you don't delete the old process, the changes that you made to your process file will not take into effect after you start your app.
You will need to issue this command before doing step 3 above:
pm2 delete <pid>
How can I change the location of ...log file location?
To change pm2's log file location, there are 2 solutions: define log path as parameter when pm2 command is executed (-l
, -o
, -e
), or start pm2 from a configuration file.
For the parameter solution, here is an example:
pm2 start app.js -o ./out.log -e ./err.log
If you don't want to define log path every time when pm2 is executed, you can generate a configuration file, define error_file
and out_file
, and start pm2 from that:
Generate a configuration file:
pm2 ecosystem simple
. This would generate a fileecosystem.config.js
, with following content:module.exports = { apps : [{ name : "app1", script : "./app.js" }] }
Define
error_file
(for error log) andout_file
(for info log) in the file, such as:module.exports = { apps : [{ name : "app1", script : "./app.js", error_file : "./err.log", out_file : "./out.log" }] }
Delete existing processes in pm2:
pm2 delete <pid>
You can get pid by doing:
pm2 status
Start the process from the configuration file:
pm2 start ecosystem.config.js
In this way, the logs are saved to ./err.log
and ./out.log
.
Please refer to the document for detail information.
Can I log the error and info in database instead of a log file?
I didn't find any resources in official document. It seems you need to write code and save log to database yourself.