Skip to content

Android logs, which are easy to disable on release builds and remove any performance impact

Notifications You must be signed in to change notification settings

mrizyver/EfficientLogs

Repository files navigation

EfficientLogs

Android logs which have no performance impact in release builds.

Setup

build.gradle (app)

dependencies {
    debugImplementation 'com.github.mrizyver.EfficientLogs:debug:1.4.1'
    releaseImplementation 'com.github.mrizyver.EfficientLogs:release:1.4.1'
}

build.gradle (.)

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

Using

class ClassName {
    fun methodName() {
        logv { "Verbose" }  //prints 'ClassName: methodName(): Verbose'
        logd { "Debug" }    //prints 'ClassName: methodName(): Debug'
        logi { "Info" }     //prints 'ClassName: methodName(): Info'
        logw { "Warning" }  //prints 'ClassName: methodName(): Warning'
        loge { "Error" }    //prints 'ClassName: methodName(): Error'

        logd { "".logNonEmpty() }   //prints nothing
        logd { null.logNonNull() }  //prints nothing
        logd { null.logNonEmpty() } //prints 'ClassName: methodName(): null'
    }
}

Save logs to a file

class Application {
    override fun onCreate() {
        logfile(File(cacheDir, "log.txt"))  //start writing to a log file
        logfile(null)                       //stop writing to a log file
    }
}

Add a prefix to get an ability to filter only logs written in your project

class Application {
    override fun onCreate() {
        logprefix("my_prefix ")
    }
}

class ClassName {
    fun methodName() {
        logd { "Debug" }    //prints 'my_prefix ClassName: methodName(): Debug'
    }
}

About

Android logs, which are easy to disable on release builds and remove any performance impact

Resources

Stars

Watchers

Forks

Packages

No packages published