{"id":22737045,"url":"https://github.com/kibotu/streamingandroidlogger","last_synced_at":"2025-08-20T14:30:45.494Z","repository":{"id":152024195,"uuid":"119273713","full_name":"kibotu/StreamingAndroidLogger","owner":"kibotu","description":"Logger","archived":false,"fork":false,"pushed_at":"2024-07-29T15:50:00.000Z","size":1019,"stargazers_count":52,"open_issues_count":0,"forks_count":8,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-12-10T22:09:12.122Z","etag":null,"topics":["android","android-server","crashlytics-logging","hacktoberfest","hacktoberfest2023","kotlin-library","logcat","logging-library","udp-logging"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/kibotu.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},"funding":{"custom":"https://paypal.me/janrabe/5"}},"created_at":"2018-01-28T16:05:04.000Z","updated_at":"2024-08-24T13:33:52.000Z","dependencies_parsed_at":"2023-11-06T11:24:50.042Z","dependency_job_id":"3440600f-2aad-4e8d-8e88-18142199ea0f","html_url":"https://github.com/kibotu/StreamingAndroidLogger","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FStreamingAndroidLogger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FStreamingAndroidLogger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FStreamingAndroidLogger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FStreamingAndroidLogger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kibotu","download_url":"https://codeload.github.com/kibotu/StreamingAndroidLogger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230431100,"owners_count":18224655,"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","android-server","crashlytics-logging","hacktoberfest","hacktoberfest2023","kotlin-library","logcat","logging-library","udp-logging"],"created_at":"2024-12-10T22:09:21.797Z","updated_at":"2024-12-19T12:09:07.468Z","avatar_url":"https://github.com/kibotu.png","language":"Kotlin","readme":"[![Donation](https://img.shields.io/badge/buy%20me%20a%20beer-brightgreen.svg)](https://www.paypal.me/janrabe/5) [![About Jan Rabe](https://img.shields.io/badge/about-me-green.svg)](https://about.me/janrabe)\n# StreamingAndroidLogger [![](https://jitpack.io/v/kibotu/StreamingAndroidLogger.svg)](https://jitpack.io/#kibotu/StreamingAndroidLogger) [![](https://jitpack.io/v/kibotu/StreamingAndroidLogger/month.svg)](https://jitpack.io/#kibotu/StreamingAndroidLogger) [![Hits-of-Code](https://hitsofcode.com/github/kibotu/StreamingAndroidLogger)](https://hitsofcode.com/view/github/kibotu/StreamingAndroidLogger) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-Streaming%20Android%20Logger-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/7622) [![Javadoc](https://img.shields.io/badge/javadoc-SNAPSHOT-green.svg)](https://jitpack.io/com/github/kibotu/StreamingAndroidLogger/master-SNAPSHOT/javadoc/index.html) [![Build Status](https://app.travis-ci.com/kibotu/StreamingAndroidLogger.svg?branch=master)](https://app.travis-ci.com/kibotu/StreamingAndroidLogger) [![API](https://img.shields.io/badge/API-21%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=21)  [![Gradle Version](https://img.shields.io/badge/gradle-8.9-green.svg)](https://docs.gradle.org/current/release-notes) [![kotlin](https://img.shields.io/badge/kotlin-2.0.0-green.svg)](https://kotlinlang.org/) [![Licence](https://img.shields.io/badge/licence-Apache%202-blue.svg)](https://raw.githubusercontent.com/kibotu/StreamingAndroidLogger/master/LICENSE) [![androidx](https://img.shields.io/badge/androidx-brightgreen.svg)](https://developer.android.com/topic/libraries/support-library/refactor)\n\n## Introduction\n\nConvenient logger that adds support to having multiple different loggers and different log levels for each one of them. e.g. LogcatLogger, CrashlyticsLogger, On-Device-Weblogging, UDP (e.g. Papertrail), SystemLogging. \n\n![demo](demo.gif)\n\n## How to install\n```groovy\nrepositories {\n    maven {\n        url \"https://jitpack.io\"\n    }\n}\n\ndependencies {\n    implementation 'com.github.kibotu:StreamingAndroidLogger:-SNAPSHOT'\n}\n```\n## How to use\n\n### Add a Logger\n\n```kotlin\nLogger.addLogger(LogcatLogger(), Level.VERBOSE)\nLogger.addLogger(SystemLogger(), Level.VERBOSE)\nLogger.addLogger(CrashlyticsLogger(), Level.WARNING)\nLogger.addLogger(WebLogger(), Level.INFO)\nLogger.addLogger(UDPLogger(this, \"logs.papertrailapp.com\", 8080), Level.INFO)\n```\n\n### Streaming Log Server\n\n```kotlin\nLogger.addLogger(WebLogger(), Level.VERBOSE)\nvar loggingWebServer = LoggingWebServer(port, assets)\nloggingWebServer.start()\nloggingWebServer.stop()\n```\n\n### Log Levels\n\n```kotlin\nVERBOSE\nDEBUG\nINFO\nWARNING\nERROR\nSILENT\n```\n\n### ILogger interface\n\n```kotlin\n/**\n * Debug Message.\n *\n * @param tag     - Application Tag.\n * @param message - Logging message.\n */\nfun debug(tag: String, message: String)\n\n/**\n * Debug Message.\n *\n * @param tag     - Application Tag.\n * @param message - Logging message.\n */\nfun verbose(tag: String, message: String)\n\n/**\n * Information Message.\n *\n * @param tag     - Application Tag.\n * @param message - Logging message.\n */\nfun information(tag: String, message: String)\n\n/**\n * Warning Message.\n *\n * @param tag     - Application Tag.\n * @param message - Logging message.\n */\nfun warning(tag: String, message: String)\n\n/**\n * Error Message.\n *\n * @param tag     - Application Tag.\n * @param message - Logging message.\n */\nfun error(tag: String, message: String)\n\n/**\n * Handle caught exception.\n *\n * @param throwable - Exception\n */\nfun exception(throwable: Throwable)\n\n/**\n * Toast message.\n *\n * @param message - Displayed message.\n */\nfun toast(message: String)\n\n/**\n * Snackbar message.\n *\n * @param message - Displayed message.\n */\nfun snackbar(message: String)\n```\n\n## How to build\n\n```shell\ngraldew clean build\n```\n\n### CI\n\n```shell\ngradlew clean assembleRelease test javadoc\n````\n#### Build Requirements\n\n- JDK17\n- Android Build Tools 35.0.0\n- Android SDK 35\n\n\n### Notes\n\nIn case you don't use the weblogger in release, add this to your build.gradle, to remove weblogging files\n```groovy\nrelease {\n    […]\n    aaptOptions {\n        ignoreAssetsPattern \"!html:!StreamingLogger:\"\n    }\n}\n``` \n\n### Notes\n\nFollow me on Twitter: [@wolkenschauer](https://twitter.com/wolkenschauer)\n\nLet me know what you think: [jan.rabe@kibotu.net](mailto:jan.rabe@kibotu.net)\n\nContributions welcome!\n\n### License\n\n\u003cpre\u003e\nCopyright 2021 Jan Rabe\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\u003c/pre\u003e\n","funding_links":["https://paypal.me/janrabe/5","https://www.paypal.me/janrabe/5"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkibotu%2Fstreamingandroidlogger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkibotu%2Fstreamingandroidlogger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkibotu%2Fstreamingandroidlogger/lists"}