io.quarkus.logging.json.runtime.LoggingJsonRecorder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of quarkus-logging-json Show documentation
Show all versions of quarkus-logging-json Show documentation
Add JSON formatter for console logging
The newest version!
package io.quarkus.logging.json.runtime;
import java.util.Optional;
import java.util.logging.Formatter;
import io.quarkus.logging.json.runtime.JsonLogConfig.JsonConfig;
import io.quarkus.runtime.RuntimeValue;
import io.quarkus.runtime.annotations.Recorder;
@Recorder
public class LoggingJsonRecorder {
public RuntimeValue> initializeConsoleJsonLogging(final JsonLogConfig config) {
return getFormatter(config.consoleJson);
}
public RuntimeValue> initializeFileJsonLogging(final JsonLogConfig config) {
return getFormatter(config.fileJson);
}
public RuntimeValue> initializeSyslogJsonLogging(JsonLogConfig config) {
return getFormatter(config.syslogJson);
}
private RuntimeValue> getFormatter(JsonConfig config) {
if (!config.enable) {
return new RuntimeValue<>(Optional.empty());
}
final JsonFormatter formatter = config.keyOverrides.map(ko -> new JsonFormatter(ko)).orElse(new JsonFormatter());
config.excludedKeys.ifPresent(ek -> formatter.setExcludedKeys(ek));
Optional.ofNullable(config.additionalField).ifPresent(af -> formatter.setAdditionalFields(af));
formatter.setPrettyPrint(config.prettyPrint);
final String dateFormat = config.dateFormat;
if (!dateFormat.equals("default")) {
formatter.setDateFormat(dateFormat);
}
formatter.setExceptionOutputType(config.exceptionOutputType);
formatter.setPrintDetails(config.printDetails);
config.recordDelimiter.ifPresent(formatter::setRecordDelimiter);
final String zoneId = config.zoneId;
if (!zoneId.equals("default")) {
formatter.setZoneId(zoneId);
}
return new RuntimeValue<>(Optional.of(formatter));
}
}