{"id":3571,"url":"https://github.com/tony19/logback-android","last_synced_at":"2025-05-14T00:10:31.547Z","repository":{"id":43186381,"uuid":"1970932","full_name":"tony19/logback-android","owner":"tony19","description":"📄The reliable, generic, fast and flexible logging framework for Android","archived":false,"fork":false,"pushed_at":"2025-05-05T23:53:35.000Z","size":69744,"stargazers_count":1226,"open_issues_count":33,"forks_count":174,"subscribers_count":46,"default_branch":"main","last_synced_at":"2025-05-06T00:36:22.441Z","etag":null,"topics":["android","java","logback","logging-library"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tony19.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"tony19","patreon":null,"open_collective":"logback-android","ko_fi":"tony19","tidelift":null,"custom":null}},"created_at":"2011-06-29T06:47:06.000Z","updated_at":"2025-04-24T09:49:16.000Z","dependencies_parsed_at":"2023-10-12T04:33:29.192Z","dependency_job_id":"471d50bd-4dd5-4655-9562-4bffdd707c5b","html_url":"https://github.com/tony19/logback-android","commit_stats":{"total_commits":4243,"total_committers":95,"mean_commits":44.66315789473684,"dds":0.5460758897006834,"last_synced_commit":"d6ed2017fb87e30e8b32d794523ac29c24123c87"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tony19%2Flogback-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tony19%2Flogback-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tony19%2Flogback-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tony19%2Flogback-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tony19","download_url":"https://codeload.github.com/tony19/logback-android/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253436815,"owners_count":21908410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","java","logback","logging-library"],"created_at":"2024-01-05T20:16:45.258Z","updated_at":"2025-05-14T00:10:31.509Z","avatar_url":"https://github.com/tony19.png","language":"Java","readme":"# logback-android [![GitHub release](https://img.shields.io/github/release/tony19/logback-android.svg?maxAge=2592000)](https://github.com/tony19/logback-android/releases/) \u003ca href=\"https://android-arsenal.com/api?level=9\"\u003e\u003cimg alt=\"API\" src=\"https://img.shields.io/badge/API-9%2B-brightgreen.svg?style=flat\"/\u003e\u003c/a\u003e [![CircleCI](https://circleci.com/gh/tony19/logback-android/tree/main.svg?style=svg)](https://circleci.com/gh/tony19/logback-android/tree/main) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/4fc7dae87f034dd181e4228acec33221)](https://www.codacy.com/gh/tony19/logback-android/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=tony19/logback-android\u0026amp;utm_campaign=Badge_Grade)\n\n## Overview\n\n`logback-android` is a lite version of [`logback`](http://logback.qos.ch) that runs on Android. This library provides a highly configurable logging framework for Android apps, supporting multiple log destinations simultaneously:\n\n * files\n * SQLite databases\n * logcat\n * sockets\n * syslog\n * email\n\nSee [Wiki](https://github.com/tony19/logback-android/wiki) for documentation.\n\n*For `logback-android@1.x`, see the [`1.x` branch](https://github.com/tony19/logback-android/tree/1.x).*\n\n## Quick Start\n\n1. Create a new \"Basic Activity\" app in [Android Studio](http://developer.android.com/sdk/index.html).\n2. In `app/build.gradle`, add the following dependencies:\n\n    ```groovy\n    dependencies {\n      implementation 'org.slf4j:slf4j-api:2.0.7'\n      implementation 'com.github.tony19:logback-android:3.0.0'\n    }\n    ```\n\n   If using `logback-android` in unit tests, **either** [use Robolectric](https://github.com/tony19/logback-android/issues/151#issuecomment-466276739), **or** use this config instead:\n\n    ```groovy\n    dependencies {\n      implementation 'org.slf4j:slf4j-api:2.0.7'\n      implementation 'com.github.tony19:logback-android:3.0.0'\n      testImplementation 'ch.qos.logback:logback-classic:1.2.11'\n    }\n\n    configurations.testImplementation {\n      exclude module: 'logback-android'\n    }\n    ```\n\n3. Create `app/src/main/assets/logback.xml` containing:\n\n    ```xml\n    \u003cconfiguration\n      xmlns=\"https://tony19.github.io/logback-android/xml\"\n      xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n      xsi:schemaLocation=\"https://tony19.github.io/logback-android/xml https://cdn.jsdelivr.net/gh/tony19/logback-android/logback.xsd\"\n    \u003e\n      \u003cappender name=\"logcat\" class=\"ch.qos.logback.classic.android.LogcatAppender\"\u003e\n        \u003ctagEncoder\u003e\n          \u003cpattern\u003e%logger{12}\u003c/pattern\u003e\n        \u003c/tagEncoder\u003e\n        \u003cencoder\u003e\n          \u003cpattern\u003e[%-20thread] %msg\u003c/pattern\u003e\n        \u003c/encoder\u003e\n      \u003c/appender\u003e\n\n      \u003croot level=\"DEBUG\"\u003e\n        \u003cappender-ref ref=\"logcat\" /\u003e\n      \u003c/root\u003e\n    \u003c/configuration\u003e\n    ```\n\n4. In `MainActivity.java`, add the following imports:\n\n    ```java\n    import org.slf4j.Logger;\n    import org.slf4j.LoggerFactory;\n    ```\n\n5. ...and modify `onOptionsItemSelected()` to log \"hello world\":\n\n    ```java\n    @Override\n    public boolean onOptionsItemSelected(MenuItem item) {\n        Logger log = LoggerFactory.getLogger(MainActivity.class);\n        log.info(\"hello world\");\n        // ...\n    }\n    ```\n\n6. Build and start the app.\n7. Open logcat for your device (via the _Android Monitor_ tab in Android Studio).\n8. Click the app menu, and select the menu-option. You should see \"hello world\" in logcat.\n\n\n## Download\n\n_Gradle_ **release**\n\n```groovy\ndependencies {\n  implementation 'org.slf4j:slf4j-api:2.0.7'\n  implementation 'com.github.tony19:logback-android:3.0.0'\n}\n```\n\n_Gradle_ **snapshot (unstable)**\n\n```groovy\nrepositories {\n  maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }\n}\n\ndependencies {\n  implementation 'org.slf4j:slf4j-api:2.0.7'\n  implementation 'com.github.tony19:logback-android:3.0.1-SNAPSHOT'\n}\n```\n\n## Build\n\nUse these commands to create the AAR:\n\n    git clone git://github.com/tony19/logback-android.git\n    cd logback-android\n    scripts/makejar.sh\n\nThe file is output to:\n\n```sh\n./build/logback-android-3.0.0-debug.aar\n```\n\n## Release\n\n1. CD into `./scripts/release`.\n2. Install deps: `npm install`\n3. Make sure `local.properties` contains the following keys, required to sign artifacts and upload to Maven Central:\n\n   ```properties\n   # output from `gpg --export-secret-keys \u003cPUBKEY_LAST8\u003e | base64`\n   signing.key=\n   # PUBKEY_LAST8 from `gpg --list-keys` (last 8 digits of pub key)\n   signing.keyId=\n   # password for key (can be empty if key has no password)\n   signing.password=\n   # path to secring.gpg file from `gpg --keyring secring.gpg --export-secret-keys \u003e ~/.gnupg/secring.gpg`\n   signing.secretKeyRingFile=/Users/tony/.gnupg/secring.gpg\n   # OSS sonatype username at https://issues.sonatype.org\n   ossrhUsername=\n   # OSS sonatype password at https://issues.sonatype.org\n   ossrhPassword=\n   # profile ID from https://oss.sonatype.org/#stagingProfiles (select profile, and copy profile ID from hash in address bar)\n   sonatypeStagingProfileId=b2413418ab44f\n   ```\n\n4. Do a dry-run: `npm run start --dry`\n5. If everything looks good, rerun without `--dry`.\n6. Confirm the artifacts were uploaded in https://repo1.maven.org/maven2/com/github/tony19/logback-android/3.0.0/.\n","funding_links":["https://github.com/sponsors/tony19","https://opencollective.com/logback-android","https://ko-fi.com/tony19"],"categories":["Logger","Java","Libraries","Libs","日志库"],"sub_categories":["Logger","\u003cA NAME=\"Other1\"\u003e\u003c/A\u003eOther"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftony19%2Flogback-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftony19%2Flogback-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftony19%2Flogback-android/lists"}