Skip to content

asoji/PrettyLog

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

29 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

wakatime

PrettyLog

A Kotlin logging library focused on readability in console. PrettyLog takes advantage of ANSI color codes to make your logs look โœจ pretty โœจ.

Installation

As of 1.8, PrettyLog supports the following targets:

  • jvm
  • mingwx64 [windows]
  • macosx64
  • macosarm64
  • linuxx64
  • linuxarm64

Supporting both Kotlin/JVM and Kotlin/Native

Kotlin DSL

repositories {
    maven {
        name = "devOS"
        url = uri("https://mvn.devos.one/releases")
    }
}

dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.2")
    implementation("com.squareup.okio:okio:3.10.2")

    // Import the common code
    implementation("cz.lukynka:pretty-log:1.8")

    // Import the platform-specific library. Do jvm if you're doing Kotlin/JVM / Java, 
    // Do any other platform if you're doing Kotlin/Native [like linuxx64 or mingwx64]
    implementation("cz.lukynka:pretty-log-PLATFORMNAMEHERE:1.8")
}

Gradle Groovy

repositories {
    mavenCentral()
    maven {
        name "devOS"
        url "https://mvn.devos.one/releases"
    }
}

dependencies {
    implementation 'org.jetbrains.kotlinx:kotlinx-datetime:0.6.2'
    implementation 'com.squareup.okio:okio:3.10.2'
    
    // Import the common code
    implementation 'cz.lukynka:pretty-log:1.5'
    
    // Import the platform-specific library. Do jvm if you're doing Kotlin/JVM / Java, 
    // Do any other platform if you're doing Kotlin/Native [like linuxx64 or mingwx64]
    implementation 'cz.lukynka:pretty-log-PLATFORMNAMEHERE:1.8'
}

Logging

Logging is very easy, just call the log(message, type) method. type parameter is optional and defaults to RUNTIME. Add LoggerFileWriter.load() to your main function if you want logs to be saved.

log("Hello there!")
log("general kenobi", LogType.NETWORK)

image

You can also log exceptions!

} catch (exception: Exception) {
    log(exception)
}

image

Logger Settings

You can change settings by simply setting LoggerSettings.<setting> to its new value

// Should the logs be saved to file?
LoggerSettings.saveToFile = true
// The path to the logs directory
LoggerSettings.saveDirectoryPath = "./logs/"
// Format of the log file name
LoggerSettings.logFileNameFormat = "yyyy-MM-dd-Hms"
// Style of the logger in console
LoggerSettings.loggerStyle = LoggerStyle.PREFIX

Logger Styles

There are 7 logger styles in total:

image

Log Types

There are 16 default log types: Debug, Information, Runtime, Network, Success, Warning, Error, Exception, Critical, Audit, Trace, Security, User Action, Performance, Config, and Fatal.

image

Custom Log Types

You can make custom log types by making object and then making vals in it with CustomLogType(name, AnsiPair) data class

object CustomLogTypes {
    val CUTE = CustomLogType("โ‰ฝ^โ€ขโฉŠโ€ข^โ‰ผ", AnsiPair.CUTE_PINK)
    val GIT = CustomLogType("\uD83E\uDD16 Git", AnsiPair.AQUA)
    val FIRE_WARNING = CustomLogType("\uD83D\uDD25 Fire Warning", AnsiPair.ORANGE)
}
log("T-This is vewy cuwute message OwO", CustomLogTypes.CUTE)
log("refusing to merge unrelated histories", CustomLogTypes.GIT)
log("SERVER ROOM ON FIRE, DONT LET ASO RUN WHILE LOOPS EVER AGAIN", CustomLogTypes.FIRE_WARNING)

image

Viewing what each log types look like using Tests

Clone this project, open it up in IntelliJ IDEA, and once the project is loaded, in the Gradle tab, go to pretty-log -> Tasks -> verification -> Run [platform]Test

image

image

Running jvmTest would be the most ideal as it'd be the most common to test for.

Implementations in other languages

About

Kotlin logging library that makes your logs look more โœจ ๐™ฅ๐™ง๐™š๐™ฉ๐™ฉ๐™ฎ โœจ

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Kotlin 100.0%