logback-android
is a lite version of logback
that runs on Android. This library provides a highly configurable logging framework for Android apps, supporting multiple log destinations simultaneously:
- files
- SQLite databases
- logcat
- sockets
- syslog
See Wiki for documentation.
For logback-android@1.x
, see the 1.x
branch.
-
Create a new "Basic Activity" app in Android Studio.
-
In
app/build.gradle
, add the following dependencies:dependencies { implementation 'org.slf4j:slf4j-api:1.7.36' // slf4j 2.x not yet supported implementation 'com.github.tony19:logback-android:2.0.1' }
If using
logback-android
in unit tests, either use Robolectric, or use this config instead:dependencies { implementation 'org.slf4j:slf4j-api:1.7.36' // slf4j 2.x not yet supported implementation 'com.github.tony19:logback-android:2.0.1' testImplementation 'ch.qos.logback:logback-classic:1.2.11' } configurations.testImplementation { exclude module: 'logback-android' }
NOTE: SLF4J 2.x is not yet supported.
-
Create
app/src/main/assets/logback.xml
containing:<configuration xmlns="https://tony19.github.io/logback-android/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://tony19.github.io/logback-android/xml https://cdn.jsdelivr.net/gh/tony19/logback-android/logback.xsd" > <appender name="logcat" class="ch.qos.logback.classic.android.LogcatAppender"> <tagEncoder> <pattern>%logger{12}</pattern> </tagEncoder> <encoder> <pattern>[%-20thread] %msg</pattern> </encoder> </appender> <root level="DEBUG"> <appender-ref ref="logcat" /> </root> </configuration>
-
In
MainActivity.java
, add the following imports:import org.slf4j.Logger; import org.slf4j.LoggerFactory;
-
...and modify
onOptionsItemSelected()
to log "hello world":@Override public boolean onOptionsItemSelected(MenuItem item) { Logger log = LoggerFactory.getLogger(MainActivity.class); log.info("hello world"); // ... }
-
Build and start the app.
-
Open logcat for your device (via the Android Monitor tab in Android Studio).
-
Click the app menu, and select the menu-option. You should see "hello world" in logcat.
Gradle release
dependencies {
implementation 'org.slf4j:slf4j-api:1.7.36' // slf4j 2.x not yet supported
implementation 'com.github.tony19:logback-android:2.0.1'
}
Gradle snapshot (unstable)
repositories {
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
}
dependencies {
implementation 'org.slf4j:slf4j-api:1.7.36' // slf4j 2.x not yet supported
implementation 'com.github.tony19:logback-android:2.0.2-SNAPSHOT'
}
Use these commands to create the AAR:
git clone git://github.com/tony19/logback-android.git
cd logback-android
scripts/makejar.sh
The file is output to:
./build/logback-android-2.0.1-debug.aar