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
Add the following to your dependencies (add jcenter to your repositories if you haven't)
And that's basically it. SLF4J will automatically look for implementations of
ILoggerFactory in the classpath (so don't add this
The priorities will be converted to LogCat's priority level and passed to
Log.isLoggable() are not respected here, since
should be responsible to decide when to log what. The following table shows
the mapping from SLF4J log levels to LogCat log levels.
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.
All tags and commits by me are signed with git with my private key:
1GPG key ID: 4FDF85343912A3AB2Fingerprint: 2FB392FB05158589B767960C4FDF85343912A3AB
Assemble the lib with the following command
.aar files can then be found in
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.Star
Overview How to Centralize your Checkstyle Configuration with Maven A Better Way to Protect Your IDs Security Best Practices: Symmetric Encryption with AES in Java and Android: Part 2: AES-CBC + HMAC The Bcrypt Protocol… is kind of a mess The Concise Interface Implementation Pattern Improving ProGuard Name Obfuscation Handling Proguard as Library Developer Managing Logging in a Multi-Module Android App Security Best Practices: Symmetric Encryption with AES in Java and Android
Patrick Favre-Bulle 2020