https://github.com/chrynan/logger
A simple Kotlin Multiplatform logging abstraction
https://github.com/chrynan/logger
android-log android-logcat kotlin kotlin-library kotlin-multiplatform kotlin-multiplatform-library kotlin-multiplatform-mobile log logcat logger logging logging-facade logging-framework logging-library logs
Last synced: 3 months ago
JSON representation
A simple Kotlin Multiplatform logging abstraction
- Host: GitHub
- URL: https://github.com/chrynan/logger
- Owner: chRyNaN
- License: apache-2.0
- Created: 2018-09-03T20:15:48.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-09-12T21:45:39.000Z (over 3 years ago)
- Last Synced: 2025-09-10T02:54:00.698Z (3 months ago)
- Topics: android-log, android-logcat, kotlin, kotlin-library, kotlin-multiplatform, kotlin-multiplatform-library, kotlin-multiplatform-mobile, log, logcat, logger, logging, logging-facade, logging-framework, logging-library, logs
- Language: Kotlin
- Homepage:
- Size: 337 KB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# logger
A simple Kotlin multi-platform logging abstraction.

This library provides simple interfaces to wrap any logging utility and use them in Kotlin Multiplatform code.
```kotlin
Log.error("Error message.")
```
## Using the Library
* Assign the `Logger` implementation to the `Log.logger` property (defaults to `DefaultLogger`):
```kotlin
Log.logger = DefaultLogger()
```
* Optionally, call the `LogInitializer.init`:
```kotlin
Log.init()
```
* Log anything:
```kotlin
Log.error(message = "Error Message", throwable = someException)
```
### Platform Specific Implementations
The library provides multiple platform specific `Logger` implementations that could be used or extended. For instance:
#### Common
* `DefaultLogger` - Platform default logging.
* **Android:** `LogCatLogger`
* **JVM:** `JavaLogger`
* **JS:** `ConsoleLogger`
* **iOS:** `NSLogger`
* `DelegatingLogger` - Delegates to one or more `Loggers`.
* `SimplePrintLineLogger` - Uses the `println()` Kotlin function.
* `NoActionLogger` - No operation Logger.
#### JavaScript
* `ConsoleLogger` - Uses the browser console.
#### Java
* `JavaLogger` - Uses the JVM Logger class.
* `JavaAnnotationProcessorMessagerLogger` - Uses the JVM Messager class used in Annotation Processors.
#### Android
* `LogCatLogger` - Uses the Android Log functions.
#### Android Timber
* `TimberLogger` - Uses the Android Timber Library.
#### iOS
* `NSLogger` - Uses `NSLog`.
## Building the library
The library is provided through [repsy.io](https://repsy.io). Refer to
the [releases](https://github.com/chRyNaN/logger/releases) page for the latest version.

### Repository
```kotlin
repositories {
maven { url = "https://repo.repsy.io/mvn/chrynan/public" }
}
```
### Dependencies
**Core Module:**
```kotlin
implementation("com.chrynan.logger:logger-core:$VERSION")
```
**Android Timber Module:**
```kotlin
implementation("com.chrynan.logger:logger-android-timber:$VERSION-release")
```
## Documentation
More detailed documentation is available in the [docs](docs) folder. The entry point to the documentation can be
found [here](docs/index.md).
## License
```
Copyright 2021 chRyNaN
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
http://www.apache.org/licenses/LICENSE-2.0
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.
```