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

com.tersesystems.echopraxia.plusscala.async.AsyncLoggerFactory.scala Maven / Gradle / Ivy

package com.tersesystems.echopraxia.plusscala.async

import com.tersesystems.echopraxia.plusscala.api.FieldBuilder
import com.tersesystems.echopraxia.spi.Caller
import com.tersesystems.echopraxia.spi.CoreLoggerFactory

/**
 * Async Logger Factory with source code enabled.
 */
object AsyncLoggerFactory {
  val FQCN: String = classOf[DefaultAsyncLoggerMethods[_]].getName

  val fieldBuilder: FieldBuilder.type = FieldBuilder

  def getLogger(name: String): AsyncLogger[FieldBuilder.type] = {
    val core = CoreLoggerFactory.getLogger(FQCN, name)
    AsyncLogger(core, fieldBuilder)
  }

  def getLogger[FB <: Singleton](name: String, fieldBuilder: FB): AsyncLogger[FB] = {
    val core = CoreLoggerFactory.getLogger(FQCN, name)
    AsyncLogger(core, fieldBuilder)
  }

  def getLogger(clazz: Class[_]): AsyncLogger[FieldBuilder.type] = {
    val core = CoreLoggerFactory.getLogger(FQCN, clazz.getName)
    AsyncLogger(core, fieldBuilder)
  }

  def getLogger[FB <: Singleton](clazz: Class[_], fieldBuilder: FB): AsyncLogger[FB] = {
    val core = CoreLoggerFactory.getLogger(FQCN, clazz.getName)
    AsyncLogger(core, fieldBuilder)
  }

  def getLogger: AsyncLogger[FieldBuilder.type] = {
    val core = CoreLoggerFactory.getLogger(FQCN, Caller.resolveClassName)
    AsyncLogger(core, fieldBuilder)
  }

  def getLogger[FB <: Singleton](fieldBuilder: FB): AsyncLogger[FB] = {
    val core = CoreLoggerFactory.getLogger(FQCN, Caller.resolveClassName)
    AsyncLogger(core, fieldBuilder)
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy