linux

如何自定义Node.js日志输出格式

小樊
45
2025-03-13 07:52:24
栏目: 编程语言

在 Node.js 中,可以使用第三方库 winstonmorgan 来自定义日志输出格式。这里以 winston 为例,介绍如何自定义日志输出格式。

  1. 首先,确保已经安装了 winston
npm install winston
  1. 创建一个名为 logger.js 的文件,并在其中设置自定义日志格式:
const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.combine(
    winston.format.timestamp({
      format: 'YYYY-MM-DD HH:mm:ss'
    }),
    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;

在这个例子中,我们使用了 winston.format.combine 方法来组合多个格式化选项。我们设置了时间戳格式,并使用 winston.format.printf 方法自定义了日志的输出格式。

  1. 在你的应用程序中使用自定义的日志记录器:
const logger = require('./logger');

logger.info('Hello, world!');
logger.error('An error occurred');

运行你的应用程序,你会看到自定义格式的日志输出。

这只是一个简单的例子,winston 提供了许多其他格式化选项,你可以根据需要进行调整。更多关于 winston 的信息和示例,请参考官方文档:https://github.com/winstonjs/winston

0
看了该问题的人还看了