debian

Debian中Node.js日志级别设置

小樊
45
2025-02-21 16:07:52
栏目: 编程语言

在Debian系统中,Node.js应用程序的日志级别通常是通过应用程序本身的配置来设置的,而不是通过系统级的配置。Node.js应用程序通常使用第三方日志库,如winstonbunyanmorgan等,来处理日志记录和日志级别设置。

以下是一些常见的Node.js日志库及其日志级别设置的示例:

Winston

Winston是一个流行的日志库,支持多种传输方式和日志级别。

const winston = require('winston');

const logger = winston.createLogger({
  level: 'info', // 设置日志级别为info
  format: winston.format.json(),
  transports: [
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' }),
  ],
});

// 如果不在生产环境中,可以添加控制台传输
if (process.env.NODE_ENV !== 'production') {
  logger.add(new winston.transports.Console({
    format: winston.format.simple(),
  }));
}

Bunyan

Bunyan是另一个流行的日志库,以其简洁的JSON格式和易于使用的API而闻名。

const bunyan = require('bunyan');

const logger = bunyan.createLogger({
  name: 'myApp',
  streams: [
    {
      level: 'info', // 设置日志级别为info
      stream: process.stdout,
    },
    {
      level: 'error',
      path: 'error.log',
    },
  ],
});

Morgan

Morgan是一个HTTP请求记录中间件,通常用于Express应用程序。

const express = require('express');
const morgan = require('morgan');

const app = express();

// 设置日志级别为combined
app.use(morgan('combined'));

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

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

设置环境变量

在某些情况下,你可能希望通过环境变量来设置日志级别。例如,使用winston时:

const winston = require('winston');

const logger = winston.createLogger({
  level: process.env.LOG_LEVEL || 'info', // 从环境变量中读取日志级别,默认为info
  format: winston.format.json(),
  transports: [
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' }),
  ],
});

然后,你可以在启动应用程序时设置环境变量:

LOG_LEVEL=debug node app.js

通过这种方式,你可以在不同的环境中灵活地设置日志级别。

0
看了该问题的人还看了