elasticsearch 如何将其他自定义字段添加到ECS日志记录中?

9rnv2umw  于 4个月前  发布在  ElasticSearch
关注(0)|答案(1)|浏览(62)

这是一个Node/JS应用程序。目前这工作:

const winston = require('winston')
const ecsFormat = require('@elastic/ecs-winston-format')
const logger = winston.createLogger({
  format: ecsFormat(), 
  transports: [
    new winston.transports.Console()
  ]
})

logger.info('hi')
logger.error('oops there is a problem', { err: new Error('boom') })

字符串
日志输出到控制台很好,但我想添加额外的字段,如服务名称和其他。我仍然希望格式和字段目前在ecsFormat,但想添加额外的。

9q78igpj

9q78igpj1#

在设置日志记录器本身时,您可以在defaultMeta属性下指定要添加的额外字段(默认情况下),例如:

const logger = winston.createLogger({
  format: ecsFormat(/* options */),
  defaultMeta: {
    myCustomField: 'hello',
  },
  transports: [new winston.transports.Console()],
});

logger.info('hi')

字符串
将产生

{"@timestamp":"2023-11-21T14:05:58.747Z","ecs.version":"8.10.0","log.level":"info","message":"hi","myCustomField":"hello"}


此外,在进行日志记录本身时,您可以在每个消息级别上传递自定义字段,例如。

logger.info('hi', {anotherExtra: 'hello'})


将产生

{"@timestamp":"2023-11-21T14:05:58.747Z","ecs.version":"8.10.0","log.level":"info","message":"hi","myCustomField":"hello", "anotherExtra": "hello"}

相关问题