@@ -37,6 +37,12 @@ object Logger {
37
37
def takingImplicit [A ](underlying : Underlying )(implicit ev : CanLog [A ]): LoggerTakingImplicit [A ] =
38
38
new LoggerTakingImplicit [A ](underlying)
39
39
40
+ /**
41
+ * Create a [[LoggerTakingConstructorArg ]] wrapping the given underlying `org.slf4j.Logger`.
42
+ */
43
+ def inContextOf [A ](underlying : Underlying )(implicit ev : CanLog [A ], a : A ): LoggerTakingConstructorArg [A ] =
44
+ new LoggerTakingConstructorArg [A ](underlying, ev, a)
45
+
40
46
/**
41
47
* Create a [[Logger ]] for the given name.
42
48
* Example:
@@ -57,6 +63,17 @@ object Logger {
57
63
def takingImplicit [A ](name : String )(implicit ev : CanLog [A ]): LoggerTakingImplicit [A ] =
58
64
new LoggerTakingImplicit [A ](LoggerFactory .getLogger(name))
59
65
66
+
67
+ /**
68
+ * Create a [[LoggerTakingConstructorArg ]] for the given name.
69
+ * Example:
70
+ * {{{
71
+ * val logger = Logger.inContextOf[CorrelationId]("application")
72
+ * }}}
73
+ */
74
+ def inContextOf [A ](name : String )(implicit ev : CanLog [A ], a : A ): LoggerTakingConstructorArg [A ] =
75
+ new LoggerTakingConstructorArg [A ](LoggerFactory .getLogger(name), ev, a)
76
+
60
77
/**
61
78
* Create a [[Logger ]] wrapping the created underlying `org.slf4j.Logger`.
62
79
*/
@@ -69,6 +86,12 @@ object Logger {
69
86
def takingImplicit [A ](clazz : Class [_])(implicit ev : CanLog [A ]): LoggerTakingImplicit [A ] =
70
87
new LoggerTakingImplicit [A ](LoggerFactory .getLogger(clazz.getName))
71
88
89
+ /**
90
+ * Create a [[LoggerTakingConstructorArg ]] named after the given class parameter.
91
+ */
92
+ def inContextOf [A ](clazz : Class [_])(implicit ev : CanLog [A ], a : A ): LoggerTakingConstructorArg [A ] =
93
+ new LoggerTakingConstructorArg [A ](LoggerFactory .getLogger(clazz.getName), ev, a)
94
+
72
95
/**
73
96
* Create a [[Logger ]] for the runtime class wrapped by the implicit class
74
97
* tag parameter.
@@ -90,91 +113,102 @@ object Logger {
90
113
*/
91
114
def takingImplicit [T , A ](implicit ct : ClassTag [T ], ev : CanLog [A ]): LoggerTakingImplicit [A ] =
92
115
new LoggerTakingImplicit [A ](LoggerFactory .getLogger(ct.runtimeClass.getName.stripSuffix(" $" )))
116
+
117
+ /**
118
+ * Create a [[LoggerTakingConstructorArg ]] for the runtime class wrapped by the implicit class
119
+ * tag parameter.
120
+ * Example:
121
+ * {{{
122
+ * val logger = Logger.inContextOf[MyClass, CorrelationId]
123
+ * }}}
124
+ */
125
+ def inContextOf [T ,A ](implicit ct : ClassTag [T ], ev : CanLog [A ], a : A ): LoggerTakingConstructorArg [A ] =
126
+ new LoggerTakingConstructorArg [A ](LoggerFactory .getLogger(ct.runtimeClass.getName.stripSuffix(" $" )), ev, a)
93
127
}
94
128
95
129
/**
96
130
* Implementation of a fast logger based on macros and an underlying `org.slf4j.Logger`.
97
131
*/
98
132
@ SerialVersionUID (538248225L )
99
- final class Logger private (val underlying : Underlying ) extends Serializable {
133
+ final class Logger private (val underlying : Underlying ) extends ALogger with Serializable {
100
134
101
135
// Error
102
136
103
- def error (message : String ): Unit = macro LoggerMacro .errorMessage
137
+ override def error (message : String ): Unit = macro LoggerMacro .errorMessage
104
138
105
- def error (message : String , cause : Throwable ): Unit = macro LoggerMacro .errorMessageCause
139
+ override def error (message : String , cause : Throwable ): Unit = macro LoggerMacro .errorMessageCause
106
140
107
- def error (message : String , args : Any * ): Unit = macro LoggerMacro .errorMessageArgs
141
+ override def error (message : String , args : Any * ): Unit = macro LoggerMacro .errorMessageArgs
108
142
109
- def error (marker : Marker , message : String ): Unit = macro LoggerMacro .errorMessageMarker
143
+ override def error (marker : Marker , message : String ): Unit = macro LoggerMacro .errorMessageMarker
110
144
111
- def error (marker : Marker , message : String , cause : Throwable ): Unit = macro LoggerMacro .errorMessageCauseMarker
145
+ override def error (marker : Marker , message : String , cause : Throwable ): Unit = macro LoggerMacro .errorMessageCauseMarker
112
146
113
- def error (marker : Marker , message : String , args : Any * ): Unit = macro LoggerMacro .errorMessageArgsMarker
147
+ override def error (marker : Marker , message : String , args : Any * ): Unit = macro LoggerMacro .errorMessageArgsMarker
114
148
115
149
def whenErrorEnabled (body : Unit ): Unit = macro LoggerMacro .errorCode
116
150
117
151
// Warn
118
152
119
- def warn (message : String ): Unit = macro LoggerMacro .warnMessage
153
+ override def warn (message : String ): Unit = macro LoggerMacro .warnMessage
120
154
121
- def warn (message : String , cause : Throwable ): Unit = macro LoggerMacro .warnMessageCause
155
+ override def warn (message : String , cause : Throwable ): Unit = macro LoggerMacro .warnMessageCause
122
156
123
- def warn (message : String , args : Any * ): Unit = macro LoggerMacro .warnMessageArgs
157
+ override def warn (message : String , args : Any * ): Unit = macro LoggerMacro .warnMessageArgs
124
158
125
- def warn (marker : Marker , message : String ): Unit = macro LoggerMacro .warnMessageMarker
159
+ override def warn (marker : Marker , message : String ): Unit = macro LoggerMacro .warnMessageMarker
126
160
127
- def warn (marker : Marker , message : String , cause : Throwable ): Unit = macro LoggerMacro .warnMessageCauseMarker
161
+ override def warn (marker : Marker , message : String , cause : Throwable ): Unit = macro LoggerMacro .warnMessageCauseMarker
128
162
129
- def warn (marker : Marker , message : String , args : Any * ): Unit = macro LoggerMacro .warnMessageArgsMarker
163
+ override def warn (marker : Marker , message : String , args : Any * ): Unit = macro LoggerMacro .warnMessageArgsMarker
130
164
131
165
def whenWarnEnabled (body : Unit ): Unit = macro LoggerMacro .warnCode
132
166
133
167
// Info
134
168
135
- def info (message : String ): Unit = macro LoggerMacro .infoMessage
169
+ override def info (message : String ): Unit = macro LoggerMacro .infoMessage
136
170
137
- def info (message : String , cause : Throwable ): Unit = macro LoggerMacro .infoMessageCause
171
+ override def info (message : String , cause : Throwable ): Unit = macro LoggerMacro .infoMessageCause
138
172
139
- def info (message : String , args : Any * ): Unit = macro LoggerMacro .infoMessageArgs
173
+ override def info (message : String , args : Any * ): Unit = macro LoggerMacro .infoMessageArgs
140
174
141
- def info (marker : Marker , message : String ): Unit = macro LoggerMacro .infoMessageMarker
175
+ override def info (marker : Marker , message : String ): Unit = macro LoggerMacro .infoMessageMarker
142
176
143
- def info (marker : Marker , message : String , cause : Throwable ): Unit = macro LoggerMacro .infoMessageCauseMarker
177
+ override def info (marker : Marker , message : String , cause : Throwable ): Unit = macro LoggerMacro .infoMessageCauseMarker
144
178
145
- def info (marker : Marker , message : String , args : Any * ): Unit = macro LoggerMacro .infoMessageArgsMarker
179
+ override def info (marker : Marker , message : String , args : Any * ): Unit = macro LoggerMacro .infoMessageArgsMarker
146
180
147
181
def whenInfoEnabled (body : Unit ): Unit = macro LoggerMacro .infoCode
148
182
149
183
// Debug
150
184
151
- def debug (message : String ): Unit = macro LoggerMacro .debugMessage
185
+ override def debug (message : String ): Unit = macro LoggerMacro .debugMessage
152
186
153
- def debug (message : String , cause : Throwable ): Unit = macro LoggerMacro .debugMessageCause
187
+ override def debug (message : String , cause : Throwable ): Unit = macro LoggerMacro .debugMessageCause
154
188
155
- def debug (message : String , args : Any * ): Unit = macro LoggerMacro .debugMessageArgs
189
+ override def debug (message : String , args : Any * ): Unit = macro LoggerMacro .debugMessageArgs
156
190
157
- def debug (marker : Marker , message : String ): Unit = macro LoggerMacro .debugMessageMarker
191
+ override def debug (marker : Marker , message : String ): Unit = macro LoggerMacro .debugMessageMarker
158
192
159
- def debug (marker : Marker , message : String , cause : Throwable ): Unit = macro LoggerMacro .debugMessageCauseMarker
193
+ override def debug (marker : Marker , message : String , cause : Throwable ): Unit = macro LoggerMacro .debugMessageCauseMarker
160
194
161
- def debug (marker : Marker , message : String , args : Any * ): Unit = macro LoggerMacro .debugMessageArgsMarker
195
+ override def debug (marker : Marker , message : String , args : Any * ): Unit = macro LoggerMacro .debugMessageArgsMarker
162
196
163
197
def whenDebugEnabled (body : Unit ): Unit = macro LoggerMacro .debugCode
164
198
165
199
// Trace
166
200
167
- def trace (message : String ): Unit = macro LoggerMacro .traceMessage
201
+ override def trace (message : String ): Unit = macro LoggerMacro .traceMessage
168
202
169
- def trace (message : String , cause : Throwable ): Unit = macro LoggerMacro .traceMessageCause
203
+ override def trace (message : String , cause : Throwable ): Unit = macro LoggerMacro .traceMessageCause
170
204
171
- def trace (message : String , args : Any * ): Unit = macro LoggerMacro .traceMessageArgs
205
+ override def trace (message : String , args : Any * ): Unit = macro LoggerMacro .traceMessageArgs
172
206
173
- def trace (marker : Marker , message : String ): Unit = macro LoggerMacro .traceMessageMarker
207
+ override def trace (marker : Marker , message : String ): Unit = macro LoggerMacro .traceMessageMarker
174
208
175
- def trace (marker : Marker , message : String , cause : Throwable ): Unit = macro LoggerMacro .traceMessageCauseMarker
209
+ override def trace (marker : Marker , message : String , cause : Throwable ): Unit = macro LoggerMacro .traceMessageCauseMarker
176
210
177
- def trace (marker : Marker , message : String , args : Any * ): Unit = macro LoggerMacro .traceMessageArgsMarker
211
+ override def trace (marker : Marker , message : String , args : Any * ): Unit = macro LoggerMacro .traceMessageArgsMarker
178
212
179
213
def whenTraceEnabled (body : Unit ): Unit = macro LoggerMacro .traceCode
180
214
0 commit comments