From: Mathieu Baudier Date: Wed, 6 Jul 2022 14:22:39 +0000 (+0200) Subject: Deal with logging parameters X-Git-Tag: v2.3.10~135 X-Git-Url: https://git.argeo.org/?a=commitdiff_plain;h=4e37b03e8835e4f15520e5e0d15252f49d09cf3a;p=lgpl%2Fargeo-commons.git Deal with logging parameters --- diff --git a/org.argeo.init/src/org/argeo/init/logging/ThinJavaUtilLogging.java b/org.argeo.init/src/org/argeo/init/logging/ThinJavaUtilLogging.java index 1bfab8e92..3ff5265e5 100644 --- a/org.argeo.init/src/org/argeo/init/logging/ThinJavaUtilLogging.java +++ b/org.argeo.init/src/org/argeo/init/logging/ThinJavaUtilLogging.java @@ -91,8 +91,13 @@ class ThinJavaUtilLogging { @Override public void publish(LogRecord record) { java.lang.System.Logger systemLogger = ThinLoggerFinder.getLogger(record.getLoggerName()); - systemLogger.log(ThinJavaUtilLogging.fromJulLevel(record.getLevel()), record.getMessage(), - record.getThrown()); + if (record.getParameters() != null && record.getParameters().length > 0) { + systemLogger.log(ThinJavaUtilLogging.fromJulLevel(record.getLevel()), record.getMessage(), + record.getParameters()); + } else { + systemLogger.log(ThinJavaUtilLogging.fromJulLevel(record.getLevel()), record.getMessage(), + record.getThrown()); + } } @Override diff --git a/org.argeo.init/src/org/argeo/init/logging/ThinLogging.java b/org.argeo.init/src/org/argeo/init/logging/ThinLogging.java index 05fdfef1a..16e792776 100644 --- a/org.argeo.init/src/org/argeo/init/logging/ThinLogging.java +++ b/org.argeo.init/src/org/argeo/init/logging/ThinLogging.java @@ -294,8 +294,19 @@ class ThinLogging implements Consumer> { // NOTE: this is the method called when logging a plain message without // exception, so it should be considered as a format only when args are not null - if (format.contains("{}"))// workaround for weird Jetty formatting - params = null; +// if (format.contains("{}"))// workaround for weird Jetty formatting +// params = null; + // TODO move this to slf4j wrapper? + if (format.contains("{}")) { + StringBuilder sb = new StringBuilder(); + String[] segments = format.split("\\{\\}"); + for (int i = 0; i < segments.length; i++) { + sb.append(segments[i]); + if (i != (segments.length - 1)) + sb.append("{" + i + "}"); + } + format = sb.toString(); + } String msg = params == null ? format : MessageFormat.format(format, params); publisher.log(this, level, bundle, msg, now, thread, (Throwable) null, findCallLocation(level, thread)); }