mirror of
https://github.com/InsanusMokrassar/KSLog.git
synced 2024-11-24 08:48:43 +00:00
Simple multiplatform logging in Kotlin
.github/workflows | ||
gradle | ||
src | ||
.gitignore | ||
build.gradle | ||
changelog_parser.sh | ||
CHANGELOG.md | ||
defaultAndroidSettings.gradle | ||
dokka.gradle | ||
github_release.gradle | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
publish.gradle | ||
publish.kpsb | ||
README.md | ||
settings.gradle |
How to use
It is simple logging tool which is using built-in tools for logging:
java.util.logging.Logger
forJVM
android.util.Log
forAndroid
Console
forJS
How to use
Fast-travel
Just use some boring extensions like:
KSLog.i("Some message")
// OR
KSLog.i("Some tag", "Some message")
// OR
KSLog.i("Some tag", "Some message", IllegalArgumentException("So, that is exception :)"))
// OR
KSLog.i("Some optional tag", Exception("Optional")) { "Lazy inited message" }
// OR
KSLog.iS("Some optional tag", Exception("Optional")) { "Lazy inited message for suspendable calculation of text" }
// OR EVEN
KSLog.l(LogLevel.INFO, "Some tag", "Some message", IllegalArgumentException("So, that is exception :)"))
// OR
KSLog.l(LogLevel.INFO, "Some optional tag", IllegalArgumentException("So, that is exception :)")) { "And lazily inited message" }
A little bit deeper
There are several important "terms" in context of this library:
- Default logger (available via
KSLog.default
) - Local logger (can be created via
KSLog
functions and passed anywhere asKSLog
) - Logging shortcuts like
KSLog.i
/KSLog.info
Every logging extension (like KSLog.i
) have its analog with lazy inited message text and the same one with suffix S
(like KSLog.iS
) for the suspendable message calculation.
Default logger can be created by passing defaultTag
and one of variants log level filters: set or minimal loggable level. In JVM
you also may setup any logger as base logger for default realizations of KSLog
. Besides, you may use your own callback (on any target platform) as output of logging:
val logger = KSLog { logLevel, optionalTag, message, optionalThrowable ->
println("[$logLevel] $optionalTag - $message: $optionalThrowable.stackTraceToString()")
}
In the example above we will take the logger
which will just print incoming data as common output.
Installation
Gradle
implementation "dev.inmo:kslog:$kslog_version"
Maven
<dependency>
<groupId>dev.inmo</groupId>
<artifactId>kslog</artifactId>
<version>${kslog_version}</version>
</dependency>