debian

Node.js 应用在 Debian 上如何配置日志

小樊
38
2025-07-07 11:42:46
栏目: 编程语言

在 Debian 上配置 Node.js 应用的日志,可以遵循以下步骤:

  1. 安装 Node.js:首先确保你已经在 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 版本,你可以根据需要选择其他版本。

  1. 创建日志目录:在你的 Node.js 应用目录下创建一个用于存放日志的文件夹。例如:
mkdir logs
  1. 配置日志记录:在你的 Node.js 应用中,可以使用第三方日志库(如 winstonmorgan)来记录日志。这里以 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)。在生产环境中,只有错误日志会被记录到文件中;在开发环境中,所有日志都会被记录到控制台。

  1. 使用日志记录:在你的应用中使用 logger 对象记录日志:
logger.info('Server is running on port 3000');
logger.error('An error occurred:', error);
  1. 设置日志轮转:为了防止日志文件过大,可以使用 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 上配置好了日志记录。你可以根据实际需求调整日志级别、格式和轮转策略。

0
看了该问题的人还看了