|
1 | 1 | package mu.internal |
2 | 2 |
|
3 | | -import mu.KLogger |
4 | | -import mu.KotlinLoggingLevel |
5 | | -import mu.Marker |
6 | | -import mu.isLoggingEnabled |
| 3 | +import mu.* |
| 4 | +import mu.KotlinLoggingLevel.* |
7 | 5 |
|
8 | | -internal class KLoggerJS(private val loggerName: String) : KLogger { |
| 6 | +internal class KLoggerJS( |
| 7 | + private val loggerName: String, |
| 8 | + private val pipes: OutputPipes = outputPipes, |
| 9 | + private val formatter: MessageFormatter = messageFormatter |
| 10 | +) : KLogger, MessageFormatter by formatter { |
9 | 11 |
|
10 | | - override fun trace(msg: () -> Any?) { |
11 | | - if (KotlinLoggingLevel.TRACE.isLoggingEnabled()) { |
12 | | - console.log("TRACE: [$loggerName] ${msg.toStringSafe()}") |
13 | | - } |
14 | | - } |
| 12 | + override fun trace(msg: () -> Any?) = TRACE.logIfEnabled(msg, pipes::trace) |
15 | 13 |
|
16 | | - override fun debug(msg: () -> Any?) { |
17 | | - if (KotlinLoggingLevel.DEBUG.isLoggingEnabled()) { |
18 | | - console.log("DEBUG: [$loggerName] ${msg.toStringSafe()}") |
19 | | - } |
20 | | - } |
| 14 | + override fun debug(msg: () -> Any?) = DEBUG.logIfEnabled(msg, pipes::debug) |
21 | 15 |
|
22 | | - override fun info(msg: () -> Any?) { |
23 | | - if (KotlinLoggingLevel.INFO.isLoggingEnabled()) { |
24 | | - console.info("INFO: [$loggerName] ${msg.toStringSafe()}") |
25 | | - } |
26 | | - } |
| 16 | + override fun info(msg: () -> Any?) = INFO.logIfEnabled(msg, pipes::info) |
27 | 17 |
|
28 | | - override fun warn(msg: () -> Any?) { |
29 | | - if (KotlinLoggingLevel.WARN.isLoggingEnabled()) { |
30 | | - console.warn("WARN: [$loggerName] ${msg.toStringSafe()}") |
31 | | - } |
32 | | - } |
| 18 | + override fun warn(msg: () -> Any?) = WARN.logIfEnabled(msg, pipes::warn) |
33 | 19 |
|
34 | | - override fun error(msg: () -> Any?) { |
35 | | - if (KotlinLoggingLevel.ERROR.isLoggingEnabled()) { |
36 | | - console.error("ERROR: [$loggerName] ${msg.toStringSafe()}") |
37 | | - } |
38 | | - } |
| 20 | + override fun error(msg: () -> Any?) = ERROR.logIfEnabled(msg, pipes::error) |
39 | 21 |
|
40 | | - override fun trace(t: Throwable?, msg: () -> Any?) { |
41 | | - if (KotlinLoggingLevel.TRACE.isLoggingEnabled()) { |
42 | | - console.log("TRACE: [$loggerName] ${msg.toStringSafe()}${t.throwableToString()}") |
43 | | - } |
44 | | - } |
| 22 | + override fun trace(t: Throwable?, msg: () -> Any?) = TRACE.logIfEnabled(msg, t, pipes::trace) |
45 | 23 |
|
46 | | - override fun debug(t: Throwable?, msg: () -> Any?) { |
47 | | - if (KotlinLoggingLevel.DEBUG.isLoggingEnabled()) { |
48 | | - console.log("DEBUG: [$loggerName] ${msg.toStringSafe()}${t.throwableToString()}") |
49 | | - } |
50 | | - } |
| 24 | + override fun debug(t: Throwable?, msg: () -> Any?) = DEBUG.logIfEnabled(msg, t, pipes::debug) |
51 | 25 |
|
52 | | - override fun info(t: Throwable?, msg: () -> Any?) { |
53 | | - if (KotlinLoggingLevel.INFO.isLoggingEnabled()) { |
54 | | - console.info("INFO: [$loggerName] ${msg.toStringSafe()}${t.throwableToString()}") |
55 | | - } |
56 | | - } |
| 26 | + override fun info(t: Throwable?, msg: () -> Any?) = INFO.logIfEnabled(msg, t, pipes::info) |
57 | 27 |
|
58 | | - override fun warn(t: Throwable?, msg: () -> Any?) { |
59 | | - if (KotlinLoggingLevel.WARN.isLoggingEnabled()) { |
60 | | - console.warn("WARN: [$loggerName] ${msg.toStringSafe()}${t.throwableToString()}") |
61 | | - } |
62 | | - } |
| 28 | + override fun warn(t: Throwable?, msg: () -> Any?) = WARN.logIfEnabled(msg, t, pipes::warn) |
63 | 29 |
|
64 | | - override fun error(t: Throwable?, msg: () -> Any?) { |
65 | | - if (KotlinLoggingLevel.ERROR.isLoggingEnabled()) { |
66 | | - console.error("ERROR: [$loggerName] ${msg.toStringSafe()}${t.throwableToString()}") |
67 | | - } |
68 | | - } |
| 30 | + override fun error(t: Throwable?, msg: () -> Any?) = ERROR.logIfEnabled(msg, t, pipes::error) |
69 | 31 |
|
70 | | - override fun trace(marker: Marker?, msg: () -> Any?) { |
71 | | - if (KotlinLoggingLevel.TRACE.isLoggingEnabled()) { |
72 | | - console.log("TRACE: [$loggerName] ${marker?.getName()} ${msg.toStringSafe()}") |
73 | | - } |
74 | | - } |
| 32 | + override fun trace(marker: Marker?, msg: () -> Any?) = TRACE.logIfEnabled(marker, msg, pipes::trace) |
75 | 33 |
|
76 | | - override fun debug(marker: Marker?, msg: () -> Any?) { |
77 | | - if (KotlinLoggingLevel.DEBUG.isLoggingEnabled()) { |
78 | | - console.log("DEBUG: [$loggerName] ${marker?.getName()} ${msg.toStringSafe()}") |
79 | | - } |
80 | | - } |
| 34 | + override fun debug(marker: Marker?, msg: () -> Any?) = DEBUG.logIfEnabled(marker, msg, pipes::debug) |
81 | 35 |
|
82 | | - override fun info(marker: Marker?, msg: () -> Any?) { |
83 | | - if (KotlinLoggingLevel.INFO.isLoggingEnabled()) { |
84 | | - console.info("INFO: [$loggerName] ${marker?.getName()} ${msg.toStringSafe()}") |
85 | | - } |
86 | | - } |
| 36 | + override fun info(marker: Marker?, msg: () -> Any?) = INFO.logIfEnabled(marker, msg, pipes::info) |
87 | 37 |
|
88 | | - override fun warn(marker: Marker?, msg: () -> Any?) { |
89 | | - if (KotlinLoggingLevel.WARN.isLoggingEnabled()) { |
90 | | - console.warn("WARN: [$loggerName] ${marker?.getName()} ${msg.toStringSafe()}") |
91 | | - } |
92 | | - } |
| 38 | + override fun warn(marker: Marker?, msg: () -> Any?) = WARN.logIfEnabled(marker, msg, pipes::warn) |
93 | 39 |
|
94 | | - override fun error(marker: Marker?, msg: () -> Any?) { |
95 | | - if (KotlinLoggingLevel.ERROR.isLoggingEnabled()) { |
96 | | - console.error("ERROR: [$loggerName] ${marker?.getName()} ${msg.toStringSafe()}") |
97 | | - } |
98 | | - } |
| 40 | + override fun error(marker: Marker?, msg: () -> Any?) = ERROR.logIfEnabled(marker, msg, pipes::error) |
99 | 41 |
|
100 | | - override fun trace(marker: Marker?, t: Throwable?, msg: () -> Any?) { |
101 | | - if (KotlinLoggingLevel.TRACE.isLoggingEnabled()) { |
102 | | - console.log("TRACE: [$loggerName] ${marker?.getName()} ${msg.toStringSafe()}${t.throwableToString()}") |
103 | | - } |
104 | | - } |
| 42 | + override fun trace(marker: Marker?, t: Throwable?, msg: () -> Any?) = TRACE.logIfEnabled(marker, msg, t, pipes::trace) |
105 | 43 |
|
106 | | - override fun debug(marker: Marker?, t: Throwable?, msg: () -> Any?) { |
107 | | - if (KotlinLoggingLevel.DEBUG.isLoggingEnabled()) { |
108 | | - console.log("DEBUG: [$loggerName] ${marker?.getName()} ${msg.toStringSafe()}${t.throwableToString()}") |
109 | | - } |
110 | | - } |
| 44 | + override fun debug(marker: Marker?, t: Throwable?, msg: () -> Any?) = DEBUG.logIfEnabled(marker, msg, t, pipes::debug) |
| 45 | + |
| 46 | + override fun info(marker: Marker?, t: Throwable?, msg: () -> Any?) = INFO.logIfEnabled(marker, msg, t, pipes::info) |
111 | 47 |
|
112 | | - override fun info(marker: Marker?, t: Throwable?, msg: () -> Any?) { |
113 | | - if (KotlinLoggingLevel.INFO.isLoggingEnabled()) { |
114 | | - console.info("INFO: [$loggerName] ${marker?.getName()} ${msg.toStringSafe()}${t.throwableToString()}") |
| 48 | + override fun warn(marker: Marker?, t: Throwable?, msg: () -> Any?) = WARN.logIfEnabled(marker, msg, t, pipes::warn) |
| 49 | + |
| 50 | + override fun error(marker: Marker?, t: Throwable?, msg: () -> Any?) = ERROR.logIfEnabled(marker, msg, t, pipes::error) |
| 51 | + |
| 52 | + private fun KotlinLoggingLevel.logIfEnabled(msg: () -> Any?, logFunction: (Any?) -> Unit) { |
| 53 | + if (isLoggingEnabled()) { |
| 54 | + logFunction(formatMessage(this, msg, loggerName)) |
115 | 55 | } |
116 | 56 | } |
117 | 57 |
|
118 | | - override fun warn(marker: Marker?, t: Throwable?, msg: () -> Any?) { |
119 | | - if (KotlinLoggingLevel.WARN.isLoggingEnabled()) { |
120 | | - console.warn("WARN: [$loggerName] ${marker?.getName()} ${msg.toStringSafe()}${t.throwableToString()}") |
| 58 | + private fun KotlinLoggingLevel.logIfEnabled(msg: () -> Any?, t: Throwable?, logFunction: (Any?) -> Unit) { |
| 59 | + if (isLoggingEnabled()) { |
| 60 | + logFunction(formatMessage(this, msg, t, loggerName)) |
121 | 61 | } |
122 | 62 | } |
123 | 63 |
|
124 | | - override fun error(marker: Marker?, t: Throwable?, msg: () -> Any?) { |
125 | | - if (KotlinLoggingLevel.ERROR.isLoggingEnabled()) { |
126 | | - console.error("ERROR: [$loggerName] ${marker?.getName()} ${msg.toStringSafe()}${t.throwableToString()}") |
| 64 | + private fun KotlinLoggingLevel.logIfEnabled(marker: Marker?, msg: () -> Any?, logFunction: (Any?) -> Unit) { |
| 65 | + if (isLoggingEnabled()) { |
| 66 | + logFunction(formatMessage(this, marker, msg, loggerName)) |
127 | 67 | } |
128 | 68 | } |
129 | 69 |
|
130 | | - private fun Throwable?.throwableToString(): String { |
131 | | - if (this == null) { |
132 | | - return "" |
| 70 | + private fun KotlinLoggingLevel.logIfEnabled(marker: Marker?, msg: () -> Any?, t: Throwable?, logFunction: (Any?) -> Unit) { |
| 71 | + if (isLoggingEnabled()) { |
| 72 | + logFunction(formatMessage(this, marker, msg, t, loggerName)) |
133 | 73 | } |
134 | | - var msg = "" |
135 | | - var current = this |
136 | | - while (current != null && current.cause != current) { |
137 | | - msg += ", Caused by: '${current.message}'" |
138 | | - current = current.cause |
139 | | - } |
140 | | - return msg |
141 | 74 | } |
| 75 | + |
142 | 76 | } |
0 commit comments