在 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 上配置好了日志记录。你可以根据实际需求调整日志级别、格式和轮转策略。