溫馨提示×

Node.js日志在Ubuntu中如何輪轉

小樊
44
2025-03-09 22:47:56
欄目: 編程語言

在Ubuntu系統中,可以使用pm2logrotate工具來實現Node.js應用程序的日志輪轉。下面是兩種方法的詳細步驟:

方法1:使用pm2

  1. 首先,確保已經安裝了Node.js和npm。

  2. 使用npm安裝pm2:

sudo npm install pm2 -g
  1. 使用pm2啟動Node.js應用程序:
pm2 start app.js --name my-app

這里,app.js是你的Node.js應用程序的入口文件,my-app是應用程序的名稱。

  1. pm2會自動處理日志輪轉。你可以通過以下命令查看日志:
pm2 logs my-app
  1. 若要配置日志輪轉設置,可以編輯pm2的配置文件(通常位于~/.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

  1. 確保已經安裝了logrotate。在Ubuntu中,它通常是預裝的。如果沒有,請使用以下命令安裝:
sudo apt-get install logrotate
  1. 創建一個新的logrotate配置文件,例如/etc/logrotate.d/my-app,并添加以下內容:
/var/log/my-app/*.log {
    daily
    missingok
    rotate 7
    compress
    notifempty
    create 0640 root adm
}

這里,你可以設置日志文件的路徑、輪轉周期(例如每天)、保留的日志文件數量、是否壓縮舊日志文件等。

  1. 在Node.js應用程序中,確保日志輸出到指定的日志文件。例如,如果你使用的是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' })
  ]
});
  1. 讓logrotate處理日志文件:
sudo logrotate -f /etc/logrotate.d/my-app

這將強制執行日志輪轉。你可以根據需要將其添加到cron作業中以自動執行。

通過以上兩種方法,你可以在Ubuntu系統中實現Node.js應用程序的日志輪轉。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女