Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
171 changes: 171 additions & 0 deletions about.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>About — logback-android</title>
<meta name="description" content="About logback-android: history, design goals, and how it relates to logback and SLF4J.">
<link rel="icon" href="assets/img/favicon.svg" type="image/svg+xml">
<link rel="stylesheet" href="assets/css/site.css">
<script src="assets/js/site.js"></script>
</head>
<body>

<header class="site-header">
<div class="container nav">
<a class="brand" href="index.html">
<svg width="26" height="26" viewBox="0 0 24 24" fill="none" aria-hidden="true">
<rect x="2" y="2" width="20" height="20" rx="5" fill="#2f7d4f"/>
<path d="M7 8h10M7 12h7M7 16h4" stroke="#fff" stroke-width="2" stroke-linecap="round"/>
</svg>
logback-android
</a>
<button class="icon-btn nav-toggle" id="nav-toggle" aria-label="Toggle navigation" aria-expanded="false">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M4 6h16M4 12h16M4 18h16"/></svg>
</button>
<nav class="nav-links" id="nav-links">
<a href="index.html">Home</a>
<a href="about.html" aria-current="page">About</a>
<a href="benefits.html">Benefits</a>
<a href="docs.html">Docs</a>
<a href="editor.html">Config Editor</a>
<a class="nav-cta" href="https://github.com/tony19/logback-android">
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
GitHub
</a>
<button class="icon-btn" id="theme-toggle" aria-label="Toggle theme"></button>
</nav>
</div>
</header>

<main>
<div class="container page-header">
<h1>About logback-android</h1>
<p>Where the project came from, what it aims to be, and how the pieces fit together.</p>
</div>

<div class="container prose section" style="padding-top: 1.5rem;">
<h2>What is it?</h2>
<p>
<strong>logback-android</strong> is a lite version of <a href="https://logback.qos.ch">logback</a>
that runs on Android. logback is the successor to the classic log4j project, designed by the same
author, and is one of the most widely used logging frameworks on the JVM. logback-android adapts
that engine for Android: it removes server-oriented components that don't make sense on a phone
(Groovy config, JMX, servlet integration) and adds Android-specific ones, like the
<code>LogcatAppender</code> and runtime variables for app data directories.
</p>
<p>
Your application code never talks to logback-android directly. Instead, it logs through
<a href="https://www.slf4j.org">SLF4J</a>, the standard Java logging facade. logback-android
plugs in underneath as the implementation, which means libraries written against SLF4J —
the vast majority of Java logging code — work on Android without modification.
</p>

<h2>Design goals</h2>
<ul>
<li><strong>Fidelity to logback.</strong> Configuration files, pattern layouts, filters, and
appender concepts behave the way the <a href="https://logback.qos.ch/manual/">logback manual</a>
describes them, so existing knowledge transfers directly.</li>
<li><strong>Configurability without code.</strong> Logging behavior lives in
<code>logback.xml</code>, not scattered through your source. Change destinations, levels,
and formats without recompiling.</li>
<li><strong>Android awareness.</strong> Built-in properties such as <code>${DATA_DIR}</code>,
<code>${LOG_DIR}</code>, <code>${EXT_DIR}</code>, <code>${PACKAGE_NAME}</code>,
<code>${VERSION_NAME}</code>, and <code>${VERSION_CODE}</code> resolve at runtime, so one
config works across devices and app versions.</li>
<li><strong>Small footprint.</strong> Only what an Android app needs, keeping method count
and APK size down.</li>
</ul>

<h2>A short history</h2>
<p>
The project was started in 2011 by <a href="https://github.com/tony19">Anthony Trinh (@tony19)</a>
as a port of logback to Android, and has been maintained continuously since. The 1.x series tracked
logback 1.1; the 2.x series moved to logback 1.2 with AndroidX-era tooling; and the current 3.x
series modernizes the toolchain with JDK-specific artifacts:
</p>
<div class="table-wrap">
<table class="nice">
<thead>
<tr><th>Artifact</th><th>Bytecode</th><th>minSdk</th></tr>
</thead>
<tbody>
<tr><td><code>com.github.tony19:logback-android</code></td><td>Java 11</td><td>26 (Android 8.0)</td></tr>
<tr><td><code>com.github.tony19:logback-android-jdk8</code></td><td>Java 8</td><td>21 (Android 5.0)</td></tr>
</tbody>
</table>
</div>
<p class="muted" style="margin-top: 1rem;">
Use <code>logback-android</code> unless your app must support devices older than Android 8.0,
in which case use <code>logback-android-jdk8</code>. For the legacy 1.x line, see the
<a href="https://github.com/tony19/logback-android/tree/1.x"><code>1.x</code> branch</a>.
</p>

<h2>How the pieces fit</h2>
<pre data-copy><code>┌─────────────────────────────┐
│ Your app &amp; libraries │
│ log.info("hello world") │
└──────────────┬──────────────┘
│ SLF4J API (facade)
┌──────────────▼──────────────┐
│ logback-android │
│ levels · filters · layout │
└──┬─────┬─────┬─────┬─────┬──┘
│ │ │ │ │
logcat file SQLite socket syslog/email</code></pre>

<h2>License &amp; contributing</h2>
<p>
logback-android is free software released under the
<a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Bug reports, feature requests, and pull requests are welcome on the
<a href="https://github.com/tony19/logback-android">GitHub repository</a>.
</p>
</div>
</main>

<footer class="site-footer">
<div class="container">
<div class="footer-grid">
<div class="footer-col">
<h4>Project</h4>
<ul>
<li><a href="https://github.com/tony19/logback-android">GitHub repository</a></li>
<li><a href="https://github.com/tony19/logback-android/releases">Releases</a></li>
<li><a href="https://github.com/tony19/logback-android/issues">Issue tracker</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Documentation</h4>
<ul>
<li><a href="docs.html">Getting started</a></li>
<li><a href="https://github.com/tony19/logback-android#readme">README</a></li>
<li><a href="doc/2.0.0/">Javadoc</a></li>
<li><a href="https://logback.qos.ch/manual/">logback manual</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Tools</h4>
<ul>
<li><a href="editor.html">Config Editor</a></li>
<li><a href="https://cdn.jsdelivr.net/gh/tony19/logback-android/logback.xsd">XML schema (XSD)</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Site</h4>
<ul>
<li><a href="about.html">About</a></li>
<li><a href="benefits.html">Benefits</a></li>
</ul>
</div>
</div>
<div class="footer-note">
logback-android is released under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Maintained by <a href="https://github.com/tony19">@tony19</a> and <a href="https://github.com/tony19/logback-android/graphs/contributors">contributors</a>.
&copy; <span data-year>2026</span>
</div>
</div>
</footer>

</body>
</html>
Loading