溫馨提示×

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

小樊
65
2025-03-11 23:08:40
欄目: 編程語言

在 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 日志輸出格式。你可以根據自己的需求選擇合適的方法。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女