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