在Debian系統上管理Node.js應用程序的日志,通常涉及以下幾個方面:選擇合適的日志庫、配置日志級別、日志的存儲和輪轉、以及使用日志管理工具。以下是詳細的步驟和建議:
Node.js生態系統中有多個流行的日志庫,如Winston、Pino、Bunyan等。Winston是最流行的日志庫之一,支持多種傳輸方式,并且易于配置。
使用Winston日志庫:
安裝Winston:
npm install winston
配置Winston:
創建一個日志配置文件,例如 logger.js:
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
defaultMeta: { service: 'user-service' },
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
format: winston.format.simple()
}));
}
module.exports = logger;
在應用程序中使用Winston:
const logger = require('./logger');
logger.info('Hello distributed log files!');
使用 logrotate 進行日志輪轉:
安裝logrotate:
sudo apt-get install logrotate
配置logrotate:
創建一個 logrotate 配置文件,例如 /etc/logrotate.d/nodejs:
/path/to/your/nodejs/logs/*.log {
daily rotate 7
compress
missingok
notifempty
create 0644 root root
}
測試logrotate配置:
logrotate -d /etc/logrotate.d/nodejs # 測試配置是否有誤
logrotate -f /etc/logrotate.d/nodejs # 強制運行一次
使用 pm2 管理日志:
安裝pm2:
sudo npm install -g pm2
使用pm2啟動應用程序:
pm2 start app.js
查看日志:
pm2 logs
如果需要分別查看錯誤日志和正常日志,可以配置 pm2 的日志文件:
{
"apps": [
{
"name": "my-app",
"script": "app.js",
"error_file": "err.log",
"out_file": "out.log"
}
]
}
然后使用以下命令查看日志:
pm2 logs my-app
Debian系統使用 systemd 作為日志系統,可以使用 journalctl 命令查看系統日志。
查看所有日志:
journalctl
查看某個特定服務的日志:
journalctl -u 服務名稱
查看某個特定時間范圍內的日志:
journalctl --since "2021-01-01" --until "2021-01-31"
通過以上步驟,您可以在Debian系統上有效地管理Node.js應用程序的日志,確保日志的收集、存儲、分析和可視化都能順利進行。