如何配置Node.js日志输出格式

234
2025/3/12 0:31:58
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在 Node.js 中,可以使用第三方库 winston 或内置的 console 模块来配置日志输出格式。下面分别介绍这两种方法。

使用 Winston 库

首先,需要安装 winston

npm install winston

然后,创建一个日志配置文件(例如:logger.js):

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.toUpperCase()}: ${message}`;
    })
  ),
  transports: [
    new transports.Console(),
    new transports.File({ filename: 'logs/error.log', level: 'error' }),
    new transports.File({ filename: 'logs/combined.log' })
  ]
});

module.exports = logger;

在这个例子中,我们配置了日志的时间戳格式、日志级别和日志输出格式。同时,我们将日志输出到控制台和两个不同的文件中。

接下来,在需要使用日志的地方引入 logger.js

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

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

使用内置的 console 模块

Node.js 的内置 console 模块也支持自定义日志输出格式。例如:

function logInfo(message) {
  console.log(`[${new Date().toISOString()}] INFO: ${message}`);
}

function logError(message) {
  console.error(`[${new Date().toISOString()}] ERROR: ${message}`);
}

logInfo('This is an info message');
logError('This is an error message');

在这个例子中,我们定义了两个函数 logInfologError,分别用于输出信息和错误日志。我们使用 Date 对象来生成时间戳,并自定义了日志输出格式。

这两种方法都可以实现自定义 Node.js 日志输出格式。你可以根据自己的需求选择合适的方法。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: SQLAdmin在Ubuntu中的最佳实践