【问题标题】:Batch scala API post requests批量 Scala API 发布请求
【发布时间】:2021-10-13 08:30:12
【问题描述】:

我在 scala 中实现了一个自定义 log4j appender,它将日志消息发送到弹性搜索 API 端点。这是代码,

class KibanaAppender extends AppenderSkeleton {

override def append(event: LoggingEvent): Unit = {
val finalMessage =
      s"""|{"create": {"_index" : "$indexName"}}
          |{"message":"$message","level":"$level","@timestamp":"$timeStamp"
    """.stripMargin

HttpService.post(json = finalMessage)
}

override def close(): Unit = {
    if (!this.closed) {
      this.closed = true
    }
  }

  override def requiresLayout(): Boolean = true
}

由于 API 端点支持批量请求,有没有办法可以按照定义的批量大小对这些请求进行批处理并发布它们?

【问题讨论】:

    标签: scala log4j


    【解决方案1】:

    批处理LogEvents 以提高性能是几乎每个 Log4j 附加程序中的常见做法。您可以查看灵感来源。这就是说,我很好奇你为什么要为这么简单的工作实现自己的附加程序。 HTTP 或 Socket 附加程序与 JSON 模板布局的组合应该足以将日志提供给 Elasticsearch。你真的不需要写一行代码。

    【讨论】:

      猜你喜欢
      • 2020-07-24
      • 2023-01-01
      • 2012-08-16
      • 1970-01-01
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 2013-07-24
      • 2018-05-21
      相关资源
      最近更新 更多