Nodejs日志记录插件pino的使用

Nodejs日志记录插件pino的使用
Pino 是一个高性能的日志库,它被设计为 Node.js 的日志工具,具有快速和简洁的特点。下面是 Pino 的基本使用方法:

安装

首先,你需要安装 Pino。你可以通过 npm 来安装:

npm install pino

基本使用

1. 基本配置

在你的 Node.js 应用中引入 Pino 并创建一个 logger 实例:

const pino = require('pino');

// 创建一个 logger 实例
const logger = pino();

// 使用 logger 记录信息
logger.info('This is an info message');
logger.warn('This is a warning message');
logger.error('This is an error message');

2. 自定义配置

你也可以自定义日志输出的方式,例如改变输出格式或输出到文件:

const pino = require('pino');

// 输出到文件
const stream = require('fs').createWriteStream('./logs/pino.log');

const logger = pino({
    level: 'info', // 日志级别
    prettyPrint: true, // 在控制台以易读的格式打印日志
}, stream);

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

3. 使用 Pino HTTP 中间件

Pino 还提供了一个中间件 pino-http,可以方便地记录 HTTP 请求的日志:

npm install pino-http

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

const express = require('express');
const pino = require('pino');
const pinoHttp = require('pino-http');

const app = express();
const logger = pino();

app.use(pinoHttp({ logger }));

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

app.listen(3000, () => {
    logger.info('Server started on port 3000');
});

4. 异步日志

Pino 支持异步日志记录,这在处理长时间运行的任务时非常有用:

const pino = require('pino');

const logger = pino();

async function longRunningTask() {
    return new Promise(resolve => setTimeout(resolve, 2000));
}

(async () => {
    logger.info('Starting long running task...');
    await longRunningTask();
    logger.info('Long running task completed.');
})();

高级用法

Pino 还提供了许多高级功能,如日志级别过滤、日志上下文(context)等。你可以查阅 官方文档 获取更多详细信息。

以上就是 Pino 的一些基本使用方法,希望对你有所帮助!


3 回复

Pino 是一个超级快的日志库,特别适合 Node.js 环境。它的设计理念是简单、高效。下面是如何开始使用 Pino 的快速指南:

  1. 安装:首先,你需要通过 npm 安装 Pino。

    npm install pino
    
  2. 基本使用

    const pino = require('pino');
    
    // 创建一个 logger 实例
    const logger = pino();
    
    // 使用 logger 记录信息
    logger.info('这是一条信息');
    logger.error('这是一条错误信息');
    
  3. 配置:你可以自定义日志输出格式和级别。

    const pino = require('pino')({
      level: 'info', // 设置日志级别
      prettyPrint: true // 在开发环境中美化日志输出
    });
    
    logger.info('定制化的日志输出');
    
  4. 异步流支持:Pino 支持直接写入到流中,非常适合日志聚合工具。

    const fs = require('fs');
    const stream = fs.createWriteStream('app.log', { flags: 'a' });
    
    const logger = pino({}, stream);
    logger.info('写入文件的日志');
    

Pino 以其高性能著称,同时保持了易用性。希望这能帮助你快速上手!


Pino 是一个高性能的日志库,它受到 Bunyan 的启发,但设计得更快、更轻量。以下是 Pino 的基本使用方法:

  1. 安装 Pino:

    你可以通过 npm 安装 pino:

    npm install pino
    
  2. 基本使用:

    创建一个简单的 logger 文件 logger.js:

    const pino = require('pino');
    
    // 创建一个 logger 实例
    const logger = pino({
        level: 'info', // 日志级别,默认是 'info'
        transport: { // 可以选择将日志输出到文件或其他地方
            target: 'pino-pretty' // 使用 pino-pretty 格式化输出
        }
    });
    
    module.exports = logger;
    
  3. 配置日志级别:

    你可以根据需要调整日志级别,如 trace, debug, info, warn, error, fatal

  4. 在其他模块中使用 Logger:

    在你的应用中引入并使用这个 logger:

    const logger = require('./logger');
    
    function doSomething() {
        logger.info('开始执行 doSomething');
        try {
            // 做一些操作
            logger.debug('正在进行的操作');
        } catch (err) {
            logger.error('doSomething 出现错误', err);
        }
        logger.info('doSomething 执行完毕');
    }
    
    doSomething();
    
  5. 自定义日志格式:

    如果你想自定义日志输出格式,可以创建一个 custom-transport.js 文件:

    const pino = require('pino');
    
    const customTransport = {
        target: 'pino/file',
        options: {
            destination: fs.createWriteStream('./app.log')
        }
    };
    
    module.exports = pino({ level: 'info' }, customTransport);
    
  6. 异步流支持:

    如果你需要处理大量的日志输出,Pino 还提供了异步流支持,可以提高性能:

    const pino = require('pino');
    const stream = require('stream');
    
    const logger = pino(
        {},
        new stream.Writable({
            write(chunk, encoding, callback) {
                // 自定义写入逻辑
                console.log(chunk.toString());
                callback();
            }
        })
    );
    
    logger.info('这是一条信息');
    

以上就是 Pino 的基本使用方法。Pino 的灵活性和高性能使其成为 Node.js 应用程序中的优秀日志解决方案。

Pino 是一个高性能的日志库,使用方法如下:

  1. 安装:npm install pino

  2. 基本使用:

const pino = require('pino');
const logger = pino();
logger.info('Hello World');
  1. 高级用法:可以配置传输(transports)、格式化器(formatters)等。
const pino = require('pino');
const pretty = require('pino-pretty');

const stream = pretty({
  level: 'info',
  colorize: true,
});

const logger = pino({}, stream);

logger.info('Hello World');

Pino 的性能优秀,并且支持多种自定义选项。

回到顶部