Nodejs Express日志记录插件express-pino-logger的使用

Nodejs Express日志记录插件express-pino-logger的使用
express-pino-logger 是一个用于在 Node.js Express 应用程序中集成 pino 日志记录库的中间件。它允许你方便地将请求日志和错误日志记录到控制台或文件中。下面是如何安装和配置 express-pino-logger 的步骤。

安装

首先,你需要安装 express-pino-loggerpino

npm install express-pino-logger pino

使用

接下来,在你的 Express 应用程序中使用这个中间件。以下是一个简单的例子,展示了如何设置和使用 express-pino-logger

示例代码

const express = require('express');
const pinoMiddleware = require('express-pino-logger');

// 创建一个 Express 应用
const app = express();

// 使用 express-pino-logger 中间件
app.use(pinoMiddleware());

// 定义一些路由
app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.post('/submit', (req, res) => {
    res.status(201).send('Data received');
});

// 错误处理示例
app.use((err, req, res, next) => {
    console.error(err.stack);
    res.status(500).send('Something broke!');
});

// 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});

在这个例子中,我们创建了一个 Express 应用,并通过 app.use(pinoMiddleware()) 添加了 express-pino-logger 中间件。这将会为每个传入的 HTTP 请求生成日志条目,包括请求方法、URL、响应时间和状态码等信息。

高级配置

express-pino-logger 还支持许多高级配置选项,例如自定义日志格式、指定日志级别以及将日志输出到文件等。你可以通过传递一个配置对象来实现这些功能:

const express = require('express');
const pinoMiddleware = require('express-pino-logger');

const app = express();

app.use(pinoMiddleware({
    // 可以在这里添加配置选项
    logger: require('pino')({
        level: 'info',
        prettyPrint: true
    }),
    serializers: {
        res: (res) => ({
            statusCode: res.statusCode,
            headers: res._header
        })
    },
    autoLogging: {
        ignorePath: '/healthcheck'
    }
}));

// 路由和其他中间件...

在这个配置示例中,我们设置了日志级别为 info,启用了美化打印(仅在开发环境中有用),并自定义了响应对象的日志序列化方式。此外,我们还忽略了 /healthcheck 路径的日志记录。

通过这些步骤,你可以轻松地在你的 Express 应用程序中集成 express-pino-logger,从而获得详细的请求和错误日志。


3 回复

当然!express-pino-logger 是一个将 pino 日志库集成到 Express 应用中的便捷工具。首先,你需要安装它:

npm install express-pino-logger pino

然后,在你的 Express 应用中这样使用:

const express = require('express');
const pino = require('express-pino-logger')();

const app = express();

app.use(pino);

app.get('/', (req, res) => {
  req.log.info('主页请求');
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('服务器启动在 http://localhost:3000');
});

这里,req.log.info() 用于记录信息级别的日志。你可以用 .warn(), .error() 等方法来记录不同级别的日志。

是不是很简单?现在,每当你访问应用时,都会看到详细的日志输出了!


express-pino-logger 是一个用于Express应用的日志记录中间件,它基于 pino 这个高性能日志库。使用它可以方便地将日志信息添加到你的Express应用中,这对于调试和监控非常有帮助。

安装

首先,你需要安装 express-pino-loggerpino

npm install express-pino-logger pino

使用示例

下面是一个简单的Express应用使用 express-pino-logger 的例子:

  1. 引入依赖
const express = require('express');
const logger = require('express-pino-logger')();
  1. 创建Express应用实例
const app = express();
  1. 配置路由和中间件
app.use(logger);  // 将日志中间件插入到请求处理链中

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.post('/', (req, res) => {
    res.send('Got a POST request');
});
  1. 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});

高级配置

express-pino-logger 提供了多种配置选项来满足不同的需求,比如改变日志格式、输出位置等。你可以通过传递一个对象作为参数给 express-pino-logger() 来进行自定义配置:

const express = require('express');
const expressPinoLogger = require('express-pino-logger');

const app = express();

// 自定义日志配置
const loggerOptions = {
    serializers: {
        req: (req) => ({
            method: req.method,
            url: req.url
        }),
        res: (res) => ({
            statusCode: res.statusCode
        })
    },
    messageKey: 'message', // 设置消息键名
    level: 'info', // 日志级别
    prettyPrint: true // 开启美化输出
};

const logger = expressPinoLogger(loggerOptions);

app.use(logger);

输出示例

当你访问这个Express应用时,你会看到类似如下的日志输出:

{
    "level": 30,
    "time": "2023-04-05T10:20:30.123Z",
    "pid": 1234,
    "hostname": "your-hostname",
    "req": {
        "method": "GET",
        "url": "/"
    },
    "res": {
        "statusCode": 200
    },
    "responseTime": 2.34,
    "message": "HTTP GET / 200"
}

这样,你就可以通过 express-pino-logger 轻松地为你的Express应用添加日志功能,并且可以按照自己的需求进行定制。

express-pino-logger 是一个用于 Node.js Express 应用的日志记录中间件,基于 pino。首先,你需要安装它:

npm install express-pino-logger

然后,在你的 Express 应用中使用:

const express = require('express');
const logger = require('express-pino-logger')();

const app = express();
app.use(logger);

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000);

这将自动为每个请求记录请求和响应信息。你还可以配置 express-pino-logger 来调整日志格式或输出目标。

回到顶部