debian

如何在Debian上集成Node.js日志系统

小樊
46
2025-06-19 06:36:43
栏目: 编程语言

在Debian上集成Node.js日志系统,可以遵循以下步骤:

1. 安装Node.js

首先,确保你的Debian系统上已经安装了Node.js。你可以使用以下命令来安装:

sudo apt update
sudo apt install nodejs npm

2. 选择日志库

Node.js有许多日志库可供选择,例如winstonmorganpino等。这里我们以winston为例。

安装Winston

使用npm安装winston

npm install winston

3. 配置Winston

创建一个日志配置文件,例如logger.js,并配置Winston:

const { createLogger, format, transports } = require('winston');

const logger = createLogger({
  level: 'info',
  format: format.combine(
    format.timestamp({
      format: 'YYYY-MM-DD HH:mm:ss'
    }),
    format.printf(({ timestamp, level, message }) => {
      return `${timestamp} ${level}: ${message}`;
    })
  ),
  transports: [
    new transports.File({ filename: 'error.log', level: 'error' }),
    new transports.File({ filename: 'combined.log' })
  ]
});

if (process.env.NODE_ENV !== 'production') {
  logger.add(new transports.Console({
    format: format.simple()
  }));
}

module.exports = logger;

4. 在应用中使用Winston

在你的Node.js应用中引入并使用配置好的logger

const express = require('express');
const logger = require('./logger');

const app = express();

app.get('/', (req, res) => {
  logger.info('Hello World!');
  res.send('Hello World!');
});

app.use((err, req, res, next) => {
  logger.error(err.stack);
  res.status(500).send('Something broke!');
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  logger.info(`Server is running on port ${PORT}`);
});

5. 日志轮转

为了防止日志文件过大,可以使用winston-daily-rotate-file来实现日志轮转。

安装winston-daily-rotate-file

npm install winston-daily-rotate-file

更新日志配置

更新logger.js文件,添加日志轮转功能:

const { createLogger, format, transports } = require('winston');
const DailyRotateFile = require('winston-daily-rotate-file');

const transport = new DailyRotateFile({
  filename: 'application-%DATE%.log',
  datePattern: 'YYYY-MM-DD-HH',
  zippedArchive: true,
  maxSize: '20m',
  maxFiles: '14d'
});

const logger = createLogger({
  level: 'info',
  format: format.combine(
    format.timestamp({
      format: 'YYYY-MM-DD HH:mm:ss'
    }),
    format.printf(({ timestamp, level, message }) => {
      return `${timestamp} ${level}: ${message}`;
    })
  ),
  transports: [
    transport,
    new transports.File({ filename: 'error.log', level: 'error' }),
    new transports.File({ filename: 'combined.log' })
  ]
});

if (process.env.NODE_ENV !== 'production') {
  logger.add(new transports.Console({
    format: format.simple()
  }));
}

module.exports = logger;

6. 运行应用

现在你可以运行你的Node.js应用,并查看日志文件:

node app.js

日志文件将会每天自动轮转,并且保留最近14天的日志文件。

通过以上步骤,你就可以在Debian上成功集成Node.js日志系统,并实现日志的记录和轮转。

0
看了该问题的人还看了