File tree Expand file tree Collapse file tree 10 files changed +70
-9
lines changed
androidMain/kotlin/io/github/oshai
commonMain/kotlin/io/github/oshai
jsMain/kotlin/io/github/oshai/internal
jsTest/kotlin/io/github/oshai
jvmMain/kotlin/io/github/oshai
nativeMain/kotlin/io/github/oshai/internal
nativeTest/kotlin/io/github/oshai Expand file tree Collapse file tree 10 files changed +70
-9
lines changed Original file line number Diff line number Diff line change @@ -118,4 +118,11 @@ public actual interface KLogger {
118118 * @return True if this Logger is enabled for the ERROR level, false otherwise.
119119 */
120120 public actual val isErrorEnabled: Boolean
121+
122+ /* *
123+ * Is the logger instance OFF?
124+ *
125+ * @return True if this Logger is set to the OFF level, false otherwise.
126+ */
127+ public actual val isLoggingOff: Boolean
121128}
Original file line number Diff line number Diff line change @@ -130,4 +130,11 @@ internal class KLoggerAndroid(override val name: String) : KLogger {
130130 * @return True if this Logger is enabled for the ERROR level, false otherwise.
131131 */
132132 override val isErrorEnabled: Boolean = Log .isLoggable(name, Log .ERROR )
133+
134+ /* *
135+ * Is the logger instance OFF?
136+ *
137+ * @return True if this Logger is set to the OFF level, false otherwise.
138+ */
139+ override val isLoggingOff: Boolean = ! Log .isLoggable(name, Log .ASSERT )
133140}
Original file line number Diff line number Diff line change @@ -123,6 +123,13 @@ public expect interface KLogger {
123123 * @return True if this Logger is enabled for the ERROR level, false otherwise.
124124 */
125125 public val isErrorEnabled: Boolean
126+
127+ /* *
128+ * Is the logger instance OFF?
129+ *
130+ * @return True if this Logger is set to the OFF level, false otherwise.
131+ */
132+ public val isLoggingOff: Boolean
126133}
127134
128135/* *
@@ -138,7 +145,7 @@ public fun KLogger.isEnabledForLevel(level: Level): Boolean {
138145 Levels .INFO_INT -> isInfoEnabled
139146 Levels .WARN_INT -> isWarnEnabled
140147 Levels .ERROR_INT -> isErrorEnabled
141- Levels .OFF_INT -> false
148+ Levels .OFF_INT -> isLoggingOff
142149 else -> throw IllegalArgumentException (" Level [$level ] not recognized." )
143150 }
144151}
@@ -261,4 +268,11 @@ public interface ActualKLogger {
261268 * @return True if this Logger is enabled for the ERROR level, false otherwise.
262269 */
263270 public val isErrorEnabled: Boolean
271+
272+ /* *
273+ * Is the logger instance OFF?
274+ *
275+ * @return True if this Logger is set to the OFF level, false otherwise.
276+ */
277+ public val isLoggingOff: Boolean
264278}
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ import io.github.oshai.Level
77import io.github.oshai.Level.DEBUG
88import io.github.oshai.Level.ERROR
99import io.github.oshai.Level.INFO
10+ import io.github.oshai.Level.OFF
1011import io.github.oshai.Level.TRACE
1112import io.github.oshai.Level.WARN
1213import io.github.oshai.Marker
@@ -166,4 +167,11 @@ internal class KLoggerJS(override val name: String) : KLogger {
166167 * @return True if this Logger is enabled for the ERROR level, false otherwise.
167168 */
168169 override val isErrorEnabled: Boolean = ERROR .isLoggingEnabled()
170+
171+ /* *
172+ * Is the logger instance OFF?
173+ *
174+ * @return True if this Logger is set to the OFF level, false otherwise.
175+ */
176+ override val isLoggingOff: Boolean = OFF .isLoggingEnabled()
169177}
Original file line number Diff line number Diff line change 11package io.github.oshai
22
3- import kotlin.test.AfterTest
4- import kotlin.test.BeforeTest
5- import kotlin.test.Test
6- import kotlin.test.assertEquals
3+ import kotlin.test.*
74
85private val logger = KotlinLogging .logger(" SimpleJsTest" )
96
@@ -33,6 +30,7 @@ class SimpleJsTest {
3330 @Test
3431 fun offLevelJsTest () {
3532 KotlinLoggingConfiguration .LOG_LEVEL = Level .OFF
33+ assertTrue(logger.isLoggingOff)
3634 logger.error { " error msg" }
3735 assertEquals(" NA" , appender.lastMessage)
3836 assertEquals(" NA" , appender.lastLevel)
Original file line number Diff line number Diff line change @@ -549,4 +549,12 @@ public actual interface KLogger : ActualKLogger {
549549 * @param t the exception (throwable) to log
550550 */
551551 public fun error (marker : Marker ? , msg : String? , t : Throwable ? )
552+
553+ /* *
554+ * Similar to [.isLoggingOff] method except that the marker data is also taken into consideration.
555+ *
556+ * @param marker The marker data to take into consideration
557+ * @return True if this Logger is set to the OFF level, false otherwise.
558+ */
559+ public fun isLoggingOff (marker : Marker ? ): Boolean
552560}
Original file line number Diff line number Diff line change @@ -379,6 +379,13 @@ internal class JulLoggerWrapper(override val underlyingLogger: Logger) : KLogger
379379 return underlyingLogger.isLoggable(ERROR .toJULLevel())
380380 }
381381
382+ override val isLoggingOff: Boolean
383+ get() = underlyingLogger.isLoggable(OFF .toJULLevel())
384+
385+ override fun isLoggingOff (marker : Marker ? ): Boolean {
386+ return underlyingLogger.isLoggable(OFF .toJULLevel())
387+ }
388+
382389 private fun io.github.oshai.Level.toJULLevel (): Level {
383390 val julLevel: Level =
384391 when (this ) {
Original file line number Diff line number Diff line change @@ -44,4 +44,11 @@ internal abstract class Slf4jLoggerWrapper(override val underlyingLogger: Logger
4444 override fun isErrorEnabled (marker : Marker ? ): Boolean {
4545 return underlyingLogger.isErrorEnabled(marker?.toSlf4j())
4646 }
47+
48+ override val isLoggingOff: Boolean
49+ get() = ! underlyingLogger.isErrorEnabled
50+
51+ override fun isLoggingOff (marker : Marker ? ): Boolean {
52+ return ! underlyingLogger.isErrorEnabled(marker?.toSlf4j())
53+ }
4754}
Original file line number Diff line number Diff line change @@ -177,4 +177,11 @@ internal class KLoggerNative(override val name: String) : KLogger {
177177 * @return True if this Logger is enabled for the ERROR level, false otherwise.
178178 */
179179 override val isErrorEnabled: Boolean = ERROR .isLoggingEnabled()
180+
181+ /* *
182+ * Is the logger instance OFF?
183+ *
184+ * @return True if this Logger is set to the OFF level, false otherwise.
185+ */
186+ override val isLoggingOff: Boolean = OFF .isLoggingEnabled()
180187}
Original file line number Diff line number Diff line change 11package io.github.oshai
22
3- import kotlin.test.AfterTest
4- import kotlin.test.BeforeTest
5- import kotlin.test.Test
6- import kotlin.test.assertEquals
3+ import kotlin.test.*
74
85private val logger = KotlinLogging .logger {}
96
@@ -34,6 +31,7 @@ class SimpleNativeTest {
3431 @Test
3532 fun offLevelNativeTest () {
3633 KotlinLoggingConfiguration .logLevel = Level .OFF
34+ assertTrue(logger.isLoggingOff)
3735 logger.error { " error msg" }
3836 assertEquals(" NA" , appender.lastMessage)
3937 assertEquals(" NA" , appender.lastLevel)
You can’t perform that action at this time.
0 commit comments