aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/com/drivergrp/core/logging.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/com/drivergrp/core/logging.scala')
-rw-r--r--src/main/scala/com/drivergrp/core/logging.scala132
1 files changed, 132 insertions, 0 deletions
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 = {}
+ }
+}