Skip to content

Commit

Permalink
fluentd (fix): Properly log nested map elements (#3859)
Browse files Browse the repository at this point in the history
  • Loading branch information
xerial authored Mar 5, 2025
1 parent dc9821f commit 8d3306c
Showing 1 changed file with 7 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
*/
package wvlet.airframe.fluentd
import java.time.Instant

import org.komamitsu.fluency.{EventTime, Fluency}
import wvlet.airframe.codec.MessageCodec
import wvlet.log.LogSupport

class FluentdLogger(val tagPrefix: Option[String] = None, useExtendedEventTime: Boolean, fluency: Fluency)
Expand Down Expand Up @@ -45,12 +45,9 @@ class FluentdLogger(val tagPrefix: Option[String] = None, useExtendedEventTime:
}

override def emitRaw(fullTag: String, event: Map[String, Any]): Unit = {
if (useExtendedEventTime) {
fluency.emit(fullTag, getEventTime, toJavaMap(event))
} else {
fluency.emit(fullTag, toJavaMap(event))
}
emitRawMsgPack(fullTag, toMsgPack(event))
}

override def emitRawMsgPack(tag: String, event: Array[Byte]): Unit = {
if (useExtendedEventTime) {
fluency.emit(tag, getEventTime, event, 0, event.length)
Expand All @@ -59,6 +56,10 @@ class FluentdLogger(val tagPrefix: Option[String] = None, useExtendedEventTime:
}
}

private val mapCodec = MessageCodec.of[Map[String, Any]]
private def toMsgPack(event: Map[String, Any]): Array[Byte] = {
mapCodec.toMsgPack(event)
}
private def toJavaMap(event: Map[String, Any]): java.util.Map[String, AnyRef] = {
import scala.jdk.CollectionConverters.*
(for ((k, v) <- event) yield {
Expand Down

0 comments on commit 8d3306c

Please # to comment.