fix: enhance commons logging backend with new upstream functionality
ci/woodpecker/push/docs Pipeline was successful Details
ci/woodpecker/push/jfmod Pipeline failed Details

This commit is contained in:
Johannes Frohnmeyer 2024-05-05 14:28:00 +02:00
parent d30c36b1c6
commit 34f552d4f5
Signed by: Johannes
GPG Key ID: E76429612C2929F4
2 changed files with 9 additions and 18 deletions

View File

@ -1,8 +1,7 @@
package io.gitlab.jfronny.libjf.log;
import io.gitlab.jfronny.commons.StringFormatter;
import io.gitlab.jfronny.commons.logger.SystemLoggerPlus;
import java.text.MessageFormat;
import java.util.Objects;
import java.util.ResourceBundle;
import java.util.logging.Handler;
@ -51,7 +50,7 @@ public class JULBridge extends Handler {
private final Module module = JULBridge.class.getClassLoader().getUnnamedModule();
private final EarlyLoggerSetup loggerFinder = new EarlyLoggerSetup();
private System.Logger getLoggerFor(LogRecord record) {
private SystemLoggerPlus getLoggerFor(LogRecord record) {
return loggerFinder.getLogger(Objects.requireNonNullElse(record.getLoggerName(), ""), module);
}
@ -74,7 +73,7 @@ public class JULBridge extends Handler {
@Override
public void publish(LogRecord record) {
if (record == null) return;
System.Logger logger = getLoggerFor(record);
SystemLoggerPlus logger = getLoggerFor(record);
System.Logger.Level level = getLevel(record);
String message = record.getMessage();
ResourceBundle bundle = null;
@ -82,17 +81,7 @@ public class JULBridge extends Handler {
else bundle = record.getResourceBundle();
Object[] params = record.getParameters();
Throwable thrown = record.getThrown();
if (thrown == null) {
logger.log(level, bundle, message, params);
} else {
if (params != null && params.length > 0) {
String[] strings = new String[params.length];
for (int i = 0; i < params.length; i++) {
strings[i] = StringFormatter.toString(params[i]);
}
message = new MessageFormat(message).format(strings);
}
logger.log(level, bundle, message, thrown);
}
if (thrown == null) logger.log(level, bundle, message, params);
else logger.log(level, bundle, message, thrown, params);
}
}

View File

@ -2,6 +2,7 @@ package io.gitlab.jfronny.libjf.log;
import io.gitlab.jfronny.commons.StringFormatter;
import io.gitlab.jfronny.commons.logger.CompactLogger;
import io.gitlab.jfronny.commons.logger.impl.Formatter;
import org.slf4j.Logger;
import org.slf4j.spi.CallerBoundaryAware;
import org.slf4j.spi.LoggingEventBuilder;
@ -79,7 +80,8 @@ public class SLF4JPlatformLogger implements CompactLogger {
log(level, bundle, format, null, params);
}
private void log(Level jplLevel, ResourceBundle bundle, String msg, Throwable thrown, Object... params) {
@Override
public void log(Level jplLevel, ResourceBundle bundle, String msg, Throwable thrown, Object... params) {
if (jplLevel == Level.OFF) return;
if (jplLevel == Level.ALL) {
performLog(org.slf4j.event.Level.TRACE, bundle, msg, thrown, params);
@ -93,7 +95,7 @@ public class SLF4JPlatformLogger implements CompactLogger {
}
private void performLog(org.slf4j.event.Level slf4jLevel, ResourceBundle bundle, String msg, Throwable thrown, Object... params) {
String message = CompactLogger.getResourceStringOrMessage(bundle, msg);
String message = Formatter.getResourceStringOrMessage(bundle, msg);
LoggingEventBuilder leb = slf4jLogger.makeLoggingEventBuilder(slf4jLevel);
if (thrown != null) {
leb = leb.setCause(thrown);