Skip to content

Commit da3e88b

Browse files
authored
[ISSUE#11956] Fix logging module old bugs (alibaba#12011)
* Remove log4j dependencies from nacos-client. * Fix logback listener don't add to context. * Fix can't adapter low version logback below 1.1.10. * For checkstyle.
1 parent de10c07 commit da3e88b

File tree

4 files changed

+21
-22
lines changed

4 files changed

+21
-22
lines changed

client/pom.xml

-18
Original file line numberDiff line numberDiff line change
@@ -72,24 +72,6 @@
7272
<artifactId>nacos-log4j2-adapter</artifactId>
7373
<version>${project.version}</version>
7474
</dependency>
75-
76-
<dependency>
77-
<groupId>org.apache.logging.log4j</groupId>
78-
<artifactId>log4j-core</artifactId>
79-
<optional>true</optional>
80-
</dependency>
81-
82-
<dependency>
83-
<groupId>org.apache.logging.log4j</groupId>
84-
<artifactId>log4j-api</artifactId>
85-
<optional>true</optional>
86-
</dependency>
87-
88-
<dependency>
89-
<groupId>org.apache.logging.log4j</groupId>
90-
<artifactId>log4j-slf4j-impl</artifactId>
91-
<optional>true</optional>
92-
</dependency>
9375

9476
<dependency>
9577
<artifactId>commons-codec</artifactId>

logger-adapter-impl/log4j2-adapter/src/main/resources/nacos-log4j2.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
3-
~ Copyright 1999-2018 Alibaba Group Holding Ltd.
3+
~ Copyright 1999-2023 Alibaba Group Holding Ltd.
44
~
55
~ Licensed under the Apache License, Version 2.0 (the "License");
66
~ you may not use this file except in compliance with the License.

logger-adapter-impl/logback-adapter-12/src/main/java/com/alibaba/nacos/logger/adapter/logback12/LogbackNacosLoggingAdapter.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import ch.qos.logback.classic.Logger;
2121
import ch.qos.logback.classic.LoggerContext;
2222
import ch.qos.logback.classic.spi.LoggerContextListener;
23-
import ch.qos.logback.core.CoreConstants;
2423
import com.alibaba.nacos.common.logging.NacosLoggingAdapter;
2524
import com.alibaba.nacos.common.logging.NacosLoggingProperties;
2625
import com.alibaba.nacos.common.utils.ResourceUtils;
@@ -91,7 +90,7 @@ public void loadConfiguration(NacosLoggingProperties loggingProperties) {
9190
String location = loggingProperties.getLocation();
9291
configurator.setLoggingProperties(loggingProperties);
9392
LoggerContext loggerContext = loadConfigurationOnStart(location);
94-
if (loggerContext.getObject(CoreConstants.RECONFIGURE_ON_CHANGE_TASK) != null && hasNoListener(loggerContext)) {
93+
if (hasNoListener(loggerContext)) {
9594
addListener(loggerContext, location);
9695
}
9796
}

logger-adapter-impl/logback-adapter-12/src/main/java/com/alibaba/nacos/logger/adapter/logback12/NacosLogbackConfiguratorAdapterV1.java

+19-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,12 @@ public void configure(URL url) throws Exception {
7171
URLConnection urlConnection = url.openConnection();
7272
urlConnection.setUseCaches(false);
7373
in = urlConnection.getInputStream();
74-
doConfigure(in, url.toExternalForm());
74+
if (hasNewDoConfigureApi()) {
75+
doConfigure(in, url.toExternalForm());
76+
} else {
77+
// adapter old version of logback below 1.1.10
78+
doConfigure(in);
79+
}
7580
} catch (IOException ioe) {
7681
String errMsg = "Could not open URL [" + url + "].";
7782
addError(errMsg, ioe);
@@ -89,4 +94,17 @@ public void configure(URL url) throws Exception {
8994
}
9095
}
9196

97+
/**
98+
* Since logback 1.1.10, Add new doConfigure API with sax systemId and use this API to do configure.
99+
*
100+
* @return {@code true} when logback is upper 1.1.10, otherwise {@code false}
101+
*/
102+
private boolean hasNewDoConfigureApi() {
103+
try {
104+
this.getClass().getMethod("doConfigure", InputStream.class, String.class);
105+
return true;
106+
} catch (NoSuchMethodException e) {
107+
return false;
108+
}
109+
}
92110
}

0 commit comments

Comments
 (0)