Skip to content

tabasumu/jambo

Repository files navigation

Jambo

GitHub Repo stars JitPack GitHub branch checks state

Jambo is an open source remote logging library.
For those who would like to see their logs remotely on their android device Jambo is the library for you. Jambo installs a separate debug app for intercepting all logs called with the Jambo class.

InstallationUsageContributingCreditsLicense

Installation (Kotlin DSLGroovy )

Kotlin DSL

  • Install jitpack

Locate your build.gradle.kts file in the root project and add :

allprojects {
    repositories {
        google()
        mavenCentral()
        maven { setUrl("https://jitpack.io") } // add this line
    }
}

For those with a higher gradle version, find settings.gradle.kts in the root project folder and add :

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { setUrl("https://jitpack.io") } // add this line
    }
}
  • Add Jambo Dependency

In your app module find build.gradle.kts and add :

  implementation("com.github.tabasumu:jambo:$version")
  • Sync gradle and proceed use the library

Groovy

  • Install jitpack

Locate your build.gradle file in the root project and add :

allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url "https://jitpack.io" } // add this line
    }
}

For those with a higher gradle version, find settings.gradle and add :

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }  // add this line
    }
}
  • Add Jambo dependency

In your app module find build.gradle and add :

  implementation 'com.github.tabasumu:jambo:$version'

Usage

Without Timber

  • Initialize Jambo in the App module
// Kotlin
class App : Application {

    Jambo.Builder(this) // this is the application context
        .enableNotifications(true) // not required & is false by default 
        .build()

}
// Java
class App extends Application {

    new Jambo.Builder(this) // this is the application context
        .enableNotifications(true) // not required & is false by default 
        .build()

}
  • Add the Application class in the AndroidManifest
<application
        ...
        android:name=".App"
        ...
</application>

  • Log using the Jambo class
    // Kotlin and Java

    Jambo.w("This is a WARN log")
    Jambo.i("This is an INFO log")
    Jambo.d("This is a DEBUG log")
    Jambo.e("This is an ERROR log")
    Jambo.v("This is a VERBOSE log")
    Jambo.wtf("This is an ASSERT log")

With Timber

// Kotlin
class App : Application {
    ...
   
    val tree = JamboTree(
        application = this, // application context
        enableNotifications = false // enable notifications, which is false by default
    )
    Timber.plant(tree)
    
    ...
}
// Java
class App extends Application {
    ...
    
    val tree = new JamboTree(
            this, // application context
            true // enable notifications, which is false by default
    );
    Timber.plant(tree);
    
    ...
}
  • Open the Jambo app and view your logs (search, filter, view or clear)

Empty Dark More Light


Contributing

GitHub tag (latest by date) GitHub contributors GitHub last commit Good first issuesGitHub issues GitHub pull requests

Your contributions are especially welcome. Whether it comes in the form of code patches, ideas, discussion, bug reports, encouragement or criticism, your input is needed.

Visit issues to get started.


Credits

Timber

License

Copyright 2022 Tabasumu

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.