https://github.com/kwon37xi/slf4j-lambda
slf4j with Java 8 lambda
https://github.com/kwon37xi/slf4j-lambda
java java8 lambda logging slf4j
Last synced: about 1 month ago
JSON representation
slf4j with Java 8 lambda
- Host: GitHub
- URL: https://github.com/kwon37xi/slf4j-lambda
- Owner: kwon37xi
- License: apache-2.0
- Created: 2017-07-10T12:23:35.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-09-02T13:46:07.000Z (over 3 years ago)
- Last Synced: 2025-03-28T02:46:15.575Z (about 2 months ago)
- Topics: java, java8, lambda, logging, slf4j
- Language: Java
- Size: 110 KB
- Stars: 24
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Slf4j-Lambda
[](https://maven-badges.herokuapp.com/maven-central/kr.pe.kwonnam.slf4j-lambda/slf4j-lambda-core)[Slf4j](https://www.slf4j.org/) logging with Java 8 lambda expressions.
The lambda expressions are evaluated only when the log level is enabled.
## Requirements
* Java 8
* Slf4j API## Dependencies
```
dependencies {
implementation 'kr.pe.kwonnam.slf4j-lambda:slf4j-lambda-core:0.1'
}
```## Usages
* Use `LambdaLoggerFactory` instread of Slf4j's `LoggerFactory`
* Use `LambdaLogger` instead of Slf4j's `Logger`. `LambdaLogger` inherits `Logger`, so you can still use all `Logger`'s logging methods with lambda supporting logging methods.```java
import kr.pe.kwonnam.slf4jlambda.LambdaLogger;
import kr.pe.kwonnam.slf4jlambda.LambdaLoggerFactory;LambdaLogger log = LambdaLoggerFactory.getLogger(YourClass.class);
// lambda for message itself
log.debug(() -> createMessage("debug level"));// lambda for message format's arguments
log.info("info lambda formatter number {}, string {}", () -> 123, () -> "Hello LambdaLogger");// method reference
public String longRunnigMethod() {
return "some long running method";
}log.debug("Long running method logging {}", this::longRunnigMethod);
// exception logging
log.error(() -> "error lambda exception msg - " + ex.getMessage(), ex);
```