aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/com/drivergrp/core/logging.scala
blob: 35f3a1bc74050d3c7cf8f6961197a5a4d7a47b6c (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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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 = {}
  }
}