我在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。
找到了一种使用 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
}
}