linux

如何设置Node.js日志级别

小樊
47
2025-05-10 16:33:01
栏目: 编程语言

在 Node.js 中,可以使用内置的 console 模块来记录日志。console 模块提供了不同级别的日志方法,如 console.log()console.warn()console.error() 等。默认情况下,Node.js 只显示 console.error()console.warn() 的输出,而 console.log()console.info() 的输出会被忽略。

要设置 Node.js 的日志级别,可以使用第三方库,如 winstonbunyan。这些库提供了更丰富的日志功能,包括日志级别、日志格式化和日志输出等。

以下是使用 winston 库设置日志级别的示例:

  1. 首先,安装 winston 库:
npm install winston
  1. 创建一个名为 logger.js 的文件,并添加以下代码:
const winston = require('winston');

const logger = winston.createLogger({
  level: 'info', // 设置日志级别为 'info'
  format: winston.format.combine(
    winston.format.timestamp(),
    winston.format.printf(({ timestamp, level, message }) => {
      return `${timestamp} [${level.toUpperCase()}]: ${message}`;
    })
  ),
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
    new winston.transports.File({ filename: 'logs/combined.log' }),
  ],
});

module.exports = logger;

在这个示例中,我们设置了日志级别为 info,这意味着所有级别为 info 及以上的日志都会被记录。我们还定义了日志格式和传输方式,包括控制台输出和两个文件输出。

  1. 在你的应用程序中使用 logger
const logger = require('./logger');

logger.info('This is an info message');
logger.warn('This is a warning message');
logger.error('This is an error message');

现在,只有级别为 info 及以上的日志会被记录。你可以根据需要调整日志级别。例如,将日志级别设置为 error,则只会记录错误日志:

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

logger.level = 'error';

更多关于 winston 的信息和配置选项,请参考官方文档:https://github.com/winstonjs/winston

0
看了该问题的人还看了