aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/reporting/ScalaLoggerLike.scala
blob: eda81fb4081b9bf1493ebec1f3e3a2257d6442a5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package xyz.driver.core.reporting
import com.typesafe.scalalogging.Logger

trait ScalaLoggerLike extends Reporter {

  def logger: Logger

  override def log(severity: Reporter.Severity, message: String, reason: Option[Throwable])(
      implicit ctx: SpanContext): Unit = severity match {
    case Reporter.Severity.Debug         => logger.debug(message, reason.orNull)
    case Reporter.Severity.Informational => logger.info(message, reason.orNull)
    case Reporter.Severity.Warning       => logger.warn(message, reason.orNull)
    case Reporter.Severity.Error         => logger.error(message, reason.orNull)
  }

}

object ScalaLoggerLike {
  import scala.language.implicitConversions

  def defaultScalaLogger(json: Boolean = false): Logger = {
    if (json) {
      System.setProperty("logback.configurationFile", "deployed-logback.xml")
    } else {
      System.setProperty("logback.configurationFile", "logback.xml")
    }
    Logger.apply("application")
  }

  implicit def toScalaLogger(reporter: ScalaLoggerLike): Logger = reporter.logger

}