-
-
Notifications
You must be signed in to change notification settings - Fork 110
/
DefaultMessageFormatter.kt
45 lines (38 loc) · 1.7 KB
/
DefaultMessageFormatter.kt
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
package mu
import mu.internal.toStringSafe
public object DefaultMessageFormatter : Formatter {
public override fun formatMessage(includePrefix: Boolean, level: KotlinLoggingLevel, loggerName: String, msg: () -> Any?): String =
"${prefix(includePrefix, level, loggerName)}${msg.toStringSafe()}"
public override fun formatMessage(includePrefix: Boolean, level: KotlinLoggingLevel, loggerName: String, t: Throwable?, msg: () -> Any?): String =
"${prefix(includePrefix, level, loggerName)}${msg.toStringSafe()}${t.throwableToString()}"
public override fun formatMessage(includePrefix: Boolean, level: KotlinLoggingLevel, loggerName: String, marker: Marker?, msg: () -> Any?): String =
"${prefix(includePrefix, level, loggerName)}${marker?.getName()} ${msg.toStringSafe()}"
public override fun formatMessage(
includePrefix: Boolean,
level: KotlinLoggingLevel,
loggerName: String,
marker: Marker?,
t: Throwable?,
msg: () -> Any?
): String =
"${prefix(includePrefix, level, loggerName)}${marker?.getName()} ${msg.toStringSafe()}${t.throwableToString()}"
private fun prefix(includePrefix: Boolean, level: KotlinLoggingLevel, loggerName: String): String {
return if (includePrefix) {
"${level.name}: [$loggerName] "
} else {
""
}
}
private fun Throwable?.throwableToString(): String {
if (this == null) {
return ""
}
var msg = ""
var current = this
while (current != null && current.cause != current) {
msg += ", Caused by: '${current.message}'"
current = current.cause
}
return msg
}
}