j-logger
Feature
- Support Multiplatform
- Kotlin/JVM
- Java (Beta)
- JS (Alpha)
- Contextual logging
- GlobalLogContext
- ThreadLogContext
- CoroutineLogContext
- Customizable log pipeline : (e.g. filtering, re-format, parallel processing)
- Integration
- Coroutine
- Ktor (Only JVM - Dependent by ktor)
- Koin
- slf4j (Only JVM)
- OkHttp (Only JVM)
- Fuel (Only JVM)
- Configuration option
- Code
- yaml or properties (TO-DO)
- filtering with tag or namespace (TO-DO)
Install
Gradle Project
- Add dependency
build.gradle.kts
implementation("kr.jadekim:j-logger:$jLoggerVersion")
How to use
Create logger
val logger = JLog.get("loggerName")
val logger = JLog.get(A::class)
val logger = JLog.get(A::class.java)
Log
LogContext
LogContext can upsert using plus operation.
val logContext = LogContext(mapOf())
val logContext = MutableLogContext(mutableMapOf())
GlobalLogContext["globalContext"] = "global context"
ThreadLogContext["threadLocalContext"] = "thread local context"
logger.info("info log") //LogContext = GlobalLogContext + ThreadLogContext
logger.info("info log", context = logContext) //LogContext = GlobalLogContext + ThreadLogContext + logContext
withContext(CoroutineLogContext() + logContext) {
//LogContext = GlobalLogContext + ThreadLogContext + CoroutineLogContext + logContext
logger.sTrace("trace log", meta = mapOf())
logger.sDebug("debug log", = mapOf())
logger.sInfo("info log", = mapOf())
logger.sWarning("warning log", = mapOf())
logger.sError("error log", = mapOf())
}
Pipeline
Implement
class JLogExamplePipe : JLogPipe {
companion object Key : JLogPipe.Key<JLogExamplePipe>
override val key = Key
override fun handle(log: Log): Log? {
}
}