From c0d574dc6134e4f406875ea5a1301ba46602a6ec Mon Sep 17 00:00:00 2001 From: vlad Date: Fri, 15 Jul 2016 19:41:26 -0400 Subject: Initial commit with standard lib, might be used a example of cake --- src/main/scala/com/drivergrp/core/logging.scala | 132 ++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 src/main/scala/com/drivergrp/core/logging.scala (limited to 'src/main/scala/com/drivergrp/core/logging.scala') diff --git a/src/main/scala/com/drivergrp/core/logging.scala b/src/main/scala/com/drivergrp/core/logging.scala new file mode 100644 index 0000000..35f3a1b --- /dev/null +++ b/src/main/scala/com/drivergrp/core/logging.scala @@ -0,0 +1,132 @@ +package com.drivergrp.core + +import com.typesafe.scalalogging.{LazyLogging, StrictLogging} +import org.slf4j.Marker + + +object logging { + + trait LoggerModule { + + def log: Logger + } + + trait NopLoggerModule extends LoggerModule { + + def log: Logger = new NopLogger() + } + + /** + * Defines `logger` as a lazy value initialized with an underlying `org.slf4j.Logger` + * named according to the class into which this trait is mixed. + */ + trait LazyLoggerModule extends LoggerModule { + this: LazyLogging => + + override val log: Logger = new TypesafeScalaLogger(logger) + } + + /** + * Defines `logger` as a value initialized with an underlying `org.slf4j.Logger` + * named according to the class into which this trait is mixed. + */ + trait StrictLoggerModule extends LoggerModule { + this: StrictLogging => + + override val log: Logger = new TypesafeScalaLogger(logger) + } + + + trait Logger { + + def fatal(message: String): Unit + def fatal(message: String, cause: Throwable): Unit + def fatal(message: String, args: AnyRef*): Unit + def fatal(marker: Marker, message: String): Unit + def fatal(marker: Marker, message: String, cause: Throwable): Unit + def fatal(marker: Marker, message: String, args: AnyRef*): Unit + + def error(message: String): Unit + def error(message: String, cause: Throwable): Unit + def error(message: String, args: AnyRef*): Unit + def error(marker: Marker, message: String): Unit + def error(marker: Marker, message: String, cause: Throwable): Unit + def error(marker: Marker, message: String, args: AnyRef*): Unit + + def audit(message: String): Unit + def audit(message: String, cause: Throwable): Unit + def audit(message: String, args: AnyRef*): Unit + def audit(marker: Marker, message: String): Unit + def audit(marker: Marker, message: String, cause: Throwable): Unit + def audit(marker: Marker, message: String, args: AnyRef*): Unit + + def debug(message: String): Unit + def debug(message: String, cause: Throwable): Unit + def debug(message: String, args: AnyRef*): Unit + def debug(marker: Marker, message: String): Unit + def debug(marker: Marker, message: String, cause: Throwable): Unit + def debug(marker: Marker, message: String, args: AnyRef*): Unit + } + + class TypesafeScalaLogger(scalaLogging: com.typesafe.scalalogging.Logger) extends Logger { + + def fatal(message: String): Unit = scalaLogging.error(message) + def fatal(message: String, cause: Throwable): Unit = scalaLogging.error(message, cause) + def fatal(message: String, args: AnyRef*): Unit = scalaLogging.error(message, args) + def fatal(marker: Marker, message: String): Unit = scalaLogging.error(marker, message) + def fatal(marker: Marker, message: String, cause: Throwable): Unit = scalaLogging.error(marker, message, cause) + def fatal(marker: Marker, message: String, args: AnyRef*): Unit = scalaLogging.error(marker, message, args) + + def error(message: String): Unit = scalaLogging.warn(message) + def error(message: String, cause: Throwable): Unit = scalaLogging.warn(message, cause) + def error(message: String, args: AnyRef*): Unit = scalaLogging.warn(message, args) + def error(marker: Marker, message: String): Unit = scalaLogging.warn(marker, message) + def error(marker: Marker, message: String, cause: Throwable): Unit = scalaLogging.warn(marker, message, cause) + def error(marker: Marker, message: String, args: AnyRef*): Unit = scalaLogging.warn(marker, message, args) + + def audit(message: String): Unit = scalaLogging.info(message) + def audit(message: String, cause: Throwable): Unit = scalaLogging.info(message, cause) + def audit(message: String, args: AnyRef*): Unit = scalaLogging.info(message, args) + def audit(marker: Marker, message: String): Unit = scalaLogging.info(marker, message) + def audit(marker: Marker, message: String, cause: Throwable): Unit = scalaLogging.info(marker, message, cause) + def audit(marker: Marker, message: String, args: AnyRef*): Unit = scalaLogging.info(marker, message, args) + + def debug(message: String): Unit = scalaLogging.debug(message) + def debug(message: String, cause: Throwable): Unit = scalaLogging.debug(message, cause) + def debug(message: String, args: AnyRef*): Unit = scalaLogging.debug(message, args) + def debug(marker: Marker, message: String): Unit = scalaLogging.debug(marker, message) + def debug(marker: Marker, message: String, cause: Throwable): Unit = scalaLogging.debug(marker, message, cause) + def debug(marker: Marker, message: String, args: AnyRef*): Unit = scalaLogging.debug(marker, message, args) + } + + class NopLogger() extends Logger { + + def fatal(message: String): Unit = {} + def fatal(message: String, cause: Throwable): Unit = {} + def fatal(message: String, args: AnyRef*): Unit = {} + def fatal(marker: Marker, message: String): Unit = {} + def fatal(marker: Marker, message: String, cause: Throwable): Unit = {} + def fatal(marker: Marker, message: String, args: AnyRef*): Unit = {} + + def error(message: String): Unit = {} + def error(message: String, cause: Throwable): Unit = {} + def error(message: String, args: AnyRef*): Unit = {} + def error(marker: Marker, message: String): Unit = {} + def error(marker: Marker, message: String, cause: Throwable): Unit = {} + def error(marker: Marker, message: String, args: AnyRef*): Unit = {} + + def audit(message: String): Unit = {} + def audit(message: String, cause: Throwable): Unit = {} + def audit(message: String, args: AnyRef*): Unit = {} + def audit(marker: Marker, message: String): Unit = {} + def audit(marker: Marker, message: String, cause: Throwable): Unit = {} + def audit(marker: Marker, message: String, args: AnyRef*): Unit = {} + + def debug(message: String): Unit = {} + def debug(message: String, cause: Throwable): Unit = {} + def debug(message: String, args: AnyRef*): Unit = {} + def debug(marker: Marker, message: String): Unit = {} + def debug(marker: Marker, message: String, cause: Throwable): Unit = {} + def debug(marker: Marker, message: String, args: AnyRef*): Unit = {} + } +} -- cgit v1.2.3