diff --git a/kernel/logging/core/pom.xml b/kernel/logging/core/pom.xml
index 0f9a34a777526..8f257b72147eb 100644
--- a/kernel/logging/core/pom.xml
+++ b/kernel/logging/core/pom.xml
@@ -48,7 +48,7 @@
ch.qos.logback
logback-classic
- provided
+ compile
diff --git a/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/rule/builder/DefaultLoggingRuleConfigurationBuilder.java b/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/rule/builder/DefaultLoggingRuleConfigurationBuilder.java
index e736c88b38479..0b50b3382c543 100644
--- a/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/rule/builder/DefaultLoggingRuleConfigurationBuilder.java
+++ b/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/rule/builder/DefaultLoggingRuleConfigurationBuilder.java
@@ -17,24 +17,24 @@
package org.apache.shardingsphere.logging.rule.builder;
-import org.slf4j.Logger;
import ch.qos.logback.classic.LoggerContext;
-import ch.qos.logback.classic.PatternLayout;
-import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.Appender;
import ch.qos.logback.core.FileAppender;
import ch.qos.logback.core.OutputStreamAppender;
import ch.qos.logback.core.encoder.LayoutWrappingEncoder;
+import ch.qos.logback.core.pattern.PatternLayoutBase;
import org.apache.shardingsphere.infra.rule.builder.global.DefaultGlobalRuleConfigurationBuilder;
import org.apache.shardingsphere.logging.config.LoggingRuleConfiguration;
import org.apache.shardingsphere.logging.constant.LoggingOrder;
import org.apache.shardingsphere.logging.logger.ShardingSphereAppender;
import org.apache.shardingsphere.logging.logger.ShardingSphereLogger;
+import org.slf4j.ILoggerFactory;
+import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Collection;
+import java.util.Collections;
import java.util.Comparator;
-import java.util.Iterator;
import java.util.Objects;
import java.util.TreeSet;
import java.util.stream.Collectors;
@@ -46,8 +46,12 @@ public final class DefaultLoggingRuleConfigurationBuilder implements DefaultGlob
@Override
public LoggingRuleConfiguration build() {
- LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
- return new LoggingRuleConfiguration(getDefaultLoggers(loggerContext), getDefaultAppenders(loggerContext));
+ ILoggerFactory iLoggerFactory = LoggerFactory.getILoggerFactory();
+ if ("ch.qos.logback.classic.LoggerContext".equals(iLoggerFactory.getClass().getName())) {
+ LoggerContext loggerContext = (LoggerContext) iLoggerFactory;
+ return new LoggingRuleConfiguration(getDefaultLoggers(loggerContext), getDefaultAppenders(loggerContext));
+ }
+ return new LoggingRuleConfiguration(Collections.emptyList(), Collections.emptySet());
}
private Collection getDefaultLoggers(final LoggerContext loggerContext) {
@@ -59,9 +63,8 @@ private Collection getDefaultLoggers(final LoggerContext l
private Collection getDefaultAppenders(final LoggerContext loggerContext) {
return loggerContext.getLoggerList().stream().filter(each -> null != each.getLevel()).filter(each -> !Logger.ROOT_LOGGER_NAME.equalsIgnoreCase(each.getName())).map(each -> {
- Iterator> appenderIterator = each.iteratorForAppenders();
- if (appenderIterator.hasNext()) {
- Appender appender = appenderIterator.next();
+ if (each.iteratorForAppenders().hasNext()) {
+ Appender> appender = each.iteratorForAppenders().next();
ShardingSphereAppender shardingSphereAppender = new ShardingSphereAppender(appender.getName(), appender.getClass().getName(), getAppenderPattern(appender));
getFileOutput(appender, shardingSphereAppender);
return shardingSphereAppender;
@@ -70,19 +73,19 @@ private Collection getDefaultAppenders(final LoggerConte
}).filter(Objects::nonNull).collect(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ShardingSphereAppender::getAppenderName))));
}
- private String getAppenderPattern(final Appender appender) {
+ private String getAppenderPattern(final Appender> appender) {
if (appender instanceof OutputStreamAppender) {
- OutputStreamAppender consoleAppender = (OutputStreamAppender) appender;
- LayoutWrappingEncoder encoder = (LayoutWrappingEncoder) consoleAppender.getEncoder();
- PatternLayout layout = (PatternLayout) encoder.getLayout();
+ OutputStreamAppender> consoleAppender = (OutputStreamAppender>) appender;
+ LayoutWrappingEncoder> encoder = (LayoutWrappingEncoder>) consoleAppender.getEncoder();
+ PatternLayoutBase> layout = (PatternLayoutBase>) encoder.getLayout();
return layout.getPattern();
}
return "";
}
- private void getFileOutput(final Appender appender, final ShardingSphereAppender shardingSphereAppender) {
+ private void getFileOutput(final Appender> appender, final ShardingSphereAppender shardingSphereAppender) {
if (appender instanceof FileAppender) {
- shardingSphereAppender.setFile(((FileAppender) appender).getFile());
+ shardingSphereAppender.setFile(((FileAppender>) appender).getFile());
}
}
diff --git a/pom.xml b/pom.xml
index c0f9abc15bcfc..8de7c17b4d09e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -990,6 +990,7 @@
ch.qos.logback
logback-classic
+ test
com.cedarsoftware