linux

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

小樊
31
2025-02-22 13:44:24
栏目: 编程语言

在 Node.js 中,可以使用第三方库如 winstonmorgan 来自定义日志格式。下面是使用这两个库的示例:

  1. 使用 winston 库自定义日志格式:

首先,安装 winston

npm install winston

然后,创建一个 logger.js 文件,并添加以下代码:

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.printf 方法。最后,我们将这个自定义格式应用到 winston.createLoggerformat 选项中。

  1. 使用 morgan 库自定义日志格式:

首先,安装 morgan

npm install morgan

然后,在你的主应用文件(例如 app.js)中添加以下代码:

const express = require('express');
const morgan = require('morgan');
const app = express();

const morganFormat = ':method :url :status :res[content-length] - :response-time ms - :message';

app.use(morgan(morganFormat));

// 其他路由和中间件

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

在这个例子中,我们定义了一个名为 morganFormat 的字符串,其中包含了我们想要的日志格式。然后,我们将这个格式传递给 morgan 函数,并将其作为中间件添加到 Express 应用中。

这两个示例展示了如何在 Node.js 中使用第三方库自定义日志格式。你可以根据自己的需求调整格式字符串以满足你的需求。

0
看了该问题的人还看了