fix: enhance commons logging backend with new upstream functionality
This commit is contained in:
parent
d30c36b1c6
commit
34f552d4f5
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue