Skip to content

Commit

Permalink
Introduce SimpleLoggerFactory and update LoggerFactory interface
Browse files Browse the repository at this point in the history
Created a new SimpleLoggerFactory class to handle logger creation. Refactored LoggerFactory to be an interface and moved logger instantiation logic to SimpleLoggerFactory. Updated relevant files to reflect these changes and ensure proper logger registration and muting functionality.
  • Loading branch information
smyrgeorge committed Oct 17, 2024
1 parent f066bec commit 6de48e9
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -1,21 +1,10 @@
package io.github.smyrgeorge.log4k

import io.github.smyrgeorge.log4k.impl.RootLogger
import io.github.smyrgeorge.log4k.impl.RootLogger.loggers
import io.github.smyrgeorge.log4k.impl.SimpleLogger
import io.github.smyrgeorge.log4k.impl.extensions.toName
import kotlin.reflect.KClass

@Suppress("unused")
class LoggerFactory {
interface LoggerFactory {
fun getLogger(clazz: KClass<*>): Logger = getLogger(clazz.toName())
fun getLogger(name: String): Logger {
val existing = loggers.get(name)
if (existing != null) return existing
return SimpleLogger(name, RootLogger.level).also {
val muted = loggers.isMuted(name)
if (muted) it.mute()
loggers.register(it)
}
}
fun getLogger(name: String): Logger
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ object RootLogger {
Channel(capacity = Channel.UNLIMITED)

val level: Level = Level.INFO
val factory = LoggerFactory()
val factory = SimpleLoggerFactory()
val loggers = LoggerRegistry()
val appenders = AppenderRegistry()

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package io.github.smyrgeorge.log4k.impl

import io.github.smyrgeorge.log4k.Logger
import io.github.smyrgeorge.log4k.LoggerFactory

class SimpleLoggerFactory : LoggerFactory {
override fun getLogger(name: String): Logger {
val existing = RootLogger.loggers.get(name)
if (existing != null) return existing
return SimpleLogger(name, RootLogger.level).also {
RootLogger.loggers.register(it)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ class LoggerRegistry {
fun get(clazz: KClass<*>): Logger? = get(clazz.toName())
fun get(name: String): Logger? = mutex.witLock { loggers[name] }
fun register(logger: Logger): Unit = mutex.witLock {
val muted = isMuted(logger.name)
if (muted) logger.mute()
loggers[logger.name] = logger
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ class MainTests {

@Test
fun test() {

log.debug("ignore")
log.info("this is a test")
RootLogger.loggers.mute("io.github.smyrgeorge.log4k.MainTests")
Expand Down

0 comments on commit 6de48e9

Please sign in to comment.