https://github.com/quarkiverse/quarkus-logging-json
Quarkus logging extension outputting the logging in json.
https://github.com/quarkiverse/quarkus-logging-json
hacktoberfest json logging quarkus quarkus-extension
Last synced: 3 months ago
JSON representation
Quarkus logging extension outputting the logging in json.
- Host: GitHub
- URL: https://github.com/quarkiverse/quarkus-logging-json
- Owner: quarkiverse
- License: apache-2.0
- Created: 2020-10-01T12:54:47.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2025-01-16T09:08:36.000Z (6 months ago)
- Last Synced: 2025-03-28T18:13:50.340Z (4 months ago)
- Topics: hacktoberfest, json, logging, quarkus, quarkus-extension
- Language: Java
- Homepage:
- Size: 361 KB
- Stars: 69
- Watchers: 5
- Forks: 31
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
[](https://search.maven.org/artifact/io.quarkiverse.loggingjson/quarkus-logging-json)
[](https://sonarcloud.io/dashboard?id=quarkiverse_quarkus-logging-json)[](#contributors-)
# Quarkus Logging Json
Quarkus logging extension outputting the logging in json.## Version to use
| Quarkus Version | Use version |
|-------|-------|
| 3.x.x | 3.x.x |
| 2.x.x | 1.x.x, 2.x.x |# Configuration
The extension is enabled by default for console, when added to the project.
Console logging can be disabled using configuration: `quarkus.log.json.console.enable=false`To see additional configuration options take a look at [Config](https://quarkiverse.github.io/quarkiverse-docs/quarkus-logging-json/dev/index.html)
## Elastic Common Scheme
```properties
quarkus.log.json.log-format=ecs
```# Add additional fields to all log messages
If you want to add a static field to all the log message, that is possible using the configuration.
```properties
quarkus.log.json.additional-field.serviceName.value=service-a
# type is by default STRING - Other is INT, LONG, FLOAT, DOUBLE
quarkus.log.json.additional-field.buildNumber.type=INT
quarkus.log.json.additional-field.buildNumber.value=42
```# Structured argument
If you want to do structured logging of arguments, then the argument send with your logging, can implement `io.quarkiverse.loggingjson.providers.StructuredArgument`. Then it is possible to use the JsonGenerator to format the argument in json.## Simple usage
```java
import static io.quarkiverse.loggingjson.providers.KeyValueStructuredArgument.*;
...
log.info("Test log of structured arg", kv("key", "value"));
```
# Custom log handler
If you want to add your own custom way to handle the LogRecords.
You can create your own implementations of `io.quarkiverse.loggingjson.JsonProvider`, and provide it using CDI.
Example implementation:
```java
import jakarta.inject.Singleton;
import java.io.IOException;import io.quarkiverse.loggingjson.JsonProvider;
import io.quarkiverse.loggingjson.JsonGenerator;
import org.jboss.logmanager.ExtLogRecord;@Singleton
public class MyJsonProvider implements JsonProvider {@Override
public void writeTo(JsonGenerator generator, ExtLogRecord event) throws IOException {
generator.writeStringField("myCustomField", "and my custom value"); // Will be added to every log, as a field on the json.
}
}
```## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!