如何使用nestjs-pino将日志从nestjs应用程序发送到logstash?

问题描述 投票:0回答:1

我在nestjs中的

AppModule
中有以下配置代码:

LoggerModule.forRoot({
      pinoHttp: {
        base: undefined,
        autoLogging: false,
        genReqId: () => uuidv4(),
        messageKey: 'message',
        level: 'info',
        formatters: {
          level: (label: string) => ({ level: label.toUpperCase() })
        },
        customProps: (req: IncomingMessage) => {
          return {
            request_uuid: req.id,
            request_method: req.method,
            request_uri: req.url
          };
        },
        serializers: {
          req: () => {
            return undefined;
          },
          res: () => {
            return undefined;
          }
        }
      },
      renameContext: 'logger_name'
    }),

我想将这些日志发送到logstash,并最终通过kibana进行弹性搜索和查询。我正在 docker 中运行 elk stack。当我在应用程序中记录消息时,我想将它们发送到logstash?

我尝试过pino-socket。

nestjs logstash pino
1个回答
0
投票

找到了一种使用 pino-socket 来实现的方法,如下所示:

transport: {
              target: 'pino-socket',
              options: {
                address: 'localhost', // pass host dynamically with app properties
                port: 5044, // pass port dynamically with app properties
                mode: 'tcp',
                reconnect: true,
                recovery: true
              }
            }
© www.soinside.com 2019 - 2024. All rights reserved.