在 Debian 上配置 Node.js 應用的日志,可以遵循以下步驟:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
這里我們安裝的是 Node.js 14.x 版本,你可以根據需要選擇其他版本。
mkdir logs
winston
或 morgan
)來記錄日志。這里以 winston
為例:首先,安裝 winston
:
npm install winston
然后,在你的應用中配置 winston
:
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
new winston.transports.File({ filename: 'logs/combined.log' }),
],
});
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
format: winston.format.simple(),
}));
}
這里我們配置了兩個日志文件:一個用于記錄錯誤日志(error.log
),另一個用于記錄所有級別的日志(combined.log
)。在生產環境中,只有錯誤日志會被記錄到文件中;在開發環境中,所有日志都會被記錄到控制臺。
logger
對象記錄日志:logger.info('Server is running on port 3000');
logger.error('An error occurred:', error);
winston-daily-rotate-file
庫來實現日志輪轉。首先安裝該庫:npm install winston-daily-rotate-file
然后,在 winston
配置中添加輪轉設置:
const { DailyRotateFile } = require('winston-daily-rotate-file');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new DailyRotateFile({ filename: 'logs/error-%DATE%.log', level: 'error' }),
new DailyRotateFile({ filename: 'logs/combined-%DATE%.log' }),
],
});
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
format: winston.format.simple(),
}));
}
這里我們使用了 DailyRotateFile
傳輸方式,它會每天自動創建一個新的日志文件,并在文件名中添加日期。你可以根據需要調整輪轉策略。
現在,你的 Node.js 應用已經在 Debian 上配置好了日志記錄。你可以根據實際需求調整日志級別、格式和輪轉策略。