Add ParameterProvider.
Change-Id: Iae30648eb41761831840de0ce5617072e69928a4
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/Formatter.java b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/Formatter.java
index d2e5562..c6e177c 100644
--- a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/Formatter.java
+++ b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/Formatter.java
@@ -3,6 +3,7 @@
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -28,12 +29,26 @@
private static final String ERROR_EVENT_TYPE =
"type.googleapis.com/google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent";
+ private final List<ParameterProvider> parameterProviders;
+
+ public Formatter(Collection<ParameterProvider> parameterProviders) {
+ this.parameterProviders = List.copyOf(parameterProviders);
+ }
+
@Override
public String format(ExtLogRecord logRecord) {
var message = formatMessageWithStackTrace(logRecord);
List<StructuredParameter> parameters = new ArrayList<>();
Map<String, String> labels = new HashMap<>();
+
+ for (var parameterProvider : parameterProviders) {
+ var parameter = parameterProvider.get();
+ if (parameter != null) {
+ parameters.add(parameter);
+ }
+ }
+
if (logRecord.getParameters() != null) {
for (var parameter : logRecord.getParameters()) {
if (parameter instanceof StructuredParameter) {