在Ubuntu系統中,可以使用pm2
或logrotate
工具來實現Node.js應用程序的日志輪轉。下面是兩種方法的詳細步驟:
方法1:使用pm2
首先,確保已經安裝了Node.js和npm。
使用npm安裝pm2:
sudo npm install pm2 -g
pm2 start app.js --name my-app
這里,app.js
是你的Node.js應用程序的入口文件,my-app
是應用程序的名稱。
pm2 logs my-app
~/.pm2/logs/my-app.json
),并添加以下內容:{
"append": true,
"out_file": "/var/log/my-app/output.log",
"error_file": "/var/log/my-app/error.log",
"time": true,
"merge": true,
"lines": 10000
}
這里,你可以設置日志文件的路徑、是否追加日志、時間戳、是否合并日志文件以及保留的日志行數等。
方法2:使用logrotate
sudo apt-get install logrotate
/etc/logrotate.d/my-app
,并添加以下內容:/var/log/my-app/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
}
這里,你可以設置日志文件的路徑、輪轉周期(例如每天)、保留的日志文件數量、是否壓縮舊日志文件等。
winston
庫,可以這樣配置:const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: '/var/log/my-app/output.log' }),
new winston.transports.File({ filename: '/var/log/my-app/error.log' })
]
});
sudo logrotate -f /etc/logrotate.d/my-app
這將強制執行日志輪轉。你可以根據需要將其添加到cron作業中以自動執行。
通過以上兩種方法,你可以在Ubuntu系統中實現Node.js應用程序的日志輪轉。