linux

如何设置Node.js日志格式

小樊
56
2025-04-30 14:25:11
栏目: 编程语言

在 Node.js 中,可以使用第三方库 winston 或内置的 console 模块来设置日志格式。下面是两种方法的详细说明:

方法一:使用 Winston 库

  1. 首先,确保已经安装了 Winston 库。如果没有,请运行以下命令安装:
npm install winston
  1. 创建一个名为 logger.js 的文件,并在其中设置 Winston 日志格式:
const winston = require('winston');

const logger = winston.createLogger({
  level: '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;

在这个例子中,我们使用了 winston.format.combine 方法来组合多个日志格式。winston.format.timestamp() 用于添加时间戳,winston.format.printf 用于自定义日志输出格式。

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

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

方法二:使用内置的 console 模块

在 Node.js 中,可以使用内置的 console 模块来记录日志。虽然它没有提供像 Winston 那样的格式化选项,但可以通过自定义函数来实现简单的格式化。

  1. 创建一个名为 logger.js 的文件,并在其中设置自定义日志格式:
function log(level, message) {
  const timestamp = new Date().toISOString();
  console.log(`[${timestamp}] ${level.toUpperCase()}: ${message}`);
}

module.exports = { log };
  1. 在你的应用程序中使用 logger.js 文件:
const { log } = require('./logger');

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

这个例子中的 log 函数接受两个参数:日志级别(如 “info” 或 “error”)和日志消息。它会在控制台输出带有时间戳和日志级别的格式化消息。

这两种方法都可以帮助你设置 Node.js 日志格式。你可以根据自己的需求选择合适的方法。

0
看了该问题的人还看了