Skip to content
SLF4J binding for Timber - a logger with a small, extensible API which provides utility on top of Android's normal Log class.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Fix incorrectly ignored files May 5, 2018
config/checkstyle initial commit Dec 31, 2017
gradle Update Gradle 4.8 Jul 30, 2018
slf4j-timber Add test for loggable state when no Trees are planted May 3, 2018
.gitignore Fix incorrectly ignored files May 5, 2018
.travis.yml Update Gradle, Android Plugin and Build Tools Apr 21, 2018
CHANGELOG Update Version to 1.0.1 May 5, 2018 Try to fix ci license issue by accepting all licenses Dec 31, 2017
LICENSE initial commit Dec 31, 2017 Update Dec 11, 2018
build.gradle Update Version to 1.0.1 May 5, 2018
credentials.tar.enc Add ci config Dec 31, 2017


The motivation of this project was to ease using existing libraries which use SLF4J as their logging framework on the Google Android platform in combination with Jake Wharton's Timber logging utility.

This project is based on the official slf4j-android implementation (+ bugfixes) but directs the logging calls mainly to Timber.log(...);.

Download Build Status Javadocs Coverage Status Maintainability


Add the following to your dependencies (add jcenter to your repositories if you haven't)

compile 'at.favre.lib:slf4j-timber:1.0.0'

And that's basically it. SLF4J will automatically look for implementations of ILoggerFactory in the classpath (so don't add this parallel to org.slf4j:slf4j-android)


The artifacts are deployed to jcenter and Maven Central.


Log level mapping

The priorities will be converted to LogCat's priority level and passed to Timber.log(...);. The Log.isLoggable() are not respected here, since Timber should be responsible to decide when to log what. The following table shows the mapping from SLF4J log levels to LogCat log levels.

SLF4J Android/Timber

Logger name mapping

Logger instances created using the LoggerFactory are named either according to the name given as parameter, or the fully qualified class name of the class given as parameter. No truncating will take place since Timber handles this itself.


The Android-Timber binding implementation currently does not support Markers. All logging methods which have a Marker parameter simply delegate to the corresponding method without a Marker parameter, i.e., the Marker parameter is silently ignored.

Digital Signatures

Signed Commits

All tags and commits by me are signed with git with my private key:

GPG key ID: 4FDF85343912A3AB
Fingerprint: 2FB392FB05158589B767960C4FDF85343912A3AB


Assemble the lib with the following command

./gradlew :slf4j-timber:assemble

The .aar files can then be found in /slf4j-timber/build/outputs/aar folder

Tech Stack

  • Java 7
  • Maven


Copyright 2017 Patrick Favre-Bulle

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

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.

You can’t perform that action at this time.