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:
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:2.0.7'
implementation 'com.github.tony19:logback-android:3.0.0'
}
If using logback-android
in unit tests, either use Robolectric, or use this config instead:
dependencies {
implementation 'org.slf4j:slf4j-api:2.0.7'
implementation 'com.github.tony19:logback-android:3.0.0'
testImplementation 'ch.qos.logback:logback-classic:1.2.11'
}
configurations.testImplementation {
exclude module: 'logback-android'
}
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:2.0.7'
implementation 'com.github.tony19:logback-android:3.0.0'
}
Gradle snapshot (unstable)
repositories {
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
}
dependencies {
implementation 'org.slf4j:slf4j-api:2.0.7'
implementation 'com.github.tony19:logback-android:3.0.1-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-3.0.0-debug.aar
CD into ./scripts/release
.
Install deps: npm install
Make sure local.properties
contains the following keys, required to sign artifacts and upload to Maven Central:
# output from `gpg --export-secret-keys <PUBKEY_LAST8> | base64`
signing.key=
# PUBKEY_LAST8 from `gpg --list-keys` (last 8 digits of pub key)
signing.keyId=
# password for key (can be empty if key has no password)
signing.password=
# path to secring.gpg file from `gpg --keyring secring.gpg --export-secret-keys > ~/.gnupg/secring.gpg`
signing.secretKeyRingFile=/Users/tony/.gnupg/secring.gpg
# OSS sonatype username at https://issues.sonatype.org
ossrhUsername=
# OSS sonatype password at https://issues.sonatype.org
ossrhPassword=
# profile ID from https://oss.sonatype.org/#stagingProfiles (select profile, and copy profile ID from hash in address bar)
sonatypeStagingProfileId=b2413418ab44f
Do a dry-run: npm run start --dry
If everything looks good, rerun without --dry
.
Confirm the artifacts were uploaded in https://repo1.maven.org/maven2/com/github/tony19/logback-android/3.0.0/.