All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fluentd.logger.scala.FluentLogger.scala Maven / Gradle / Ivy

package org.fluentd.logger.scala

import org.fluentd.logger.scala.sender.Sender
import scala.collection.Map

case class FluentLogger(tag :String, sender: Sender) {

  def log(label: String, key: String, value: Any): Boolean = {
    log(label, key, value, 0)
  }

  def log(label: String, key: String, value: Any, timestamp: Long): Boolean = {
    log(label, Map(key -> value), timestamp)
  }

  def log(label: String, data: Map[String, Any]): Boolean = {
    log(label, data, 0)
  }

  def log(label: String, data: Map[String, Any], timestamp: Long): Boolean = {
    if (timestamp != 0)
      sender.emit(tag + "." + label, timestamp, data.toMap)
    else 
      sender.emit(tag + "." + label, data.toMap)
  }

  def log(label: String, l: Loggable): Boolean = {
    log(label, l.toRecord, 0)
  }

  def log(label: String, l: Loggable, timestamp: Long): Boolean = {
    log(label, l.toRecord, timestamp)
  }

  def flush(): Unit = sender.flush()

  def close(): Unit = {
    flush()
    sender.close()
  }

  def getName: String = sender.getName()

  override def toString: String = sender.toString()

  override def finalize(): Unit = sender.close()

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy