[ISSUE-#4567] Refactor nacos-client Load Logging Configuration code. (#4572)
* for #4567, refactor nacos-client logging load Configuration code. * Modify exception handling. * When customizing AbstractNacosLogging Load Configuration Fail, use the default Logging Load Configuration. * NacosLogging has been modified to a single-column mode.
This commit is contained in:
parent
ce57b98332
commit
a2ea808b7d
@ -0,0 +1,70 @@
|
||||
/*
|
||||
* Copyright 1999-2018 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.alibaba.nacos.client.logging;
|
||||
|
||||
import com.alibaba.nacos.client.logging.log4j2.Log4J2NacosLogging;
|
||||
import com.alibaba.nacos.client.logging.logback.LogbackNacosLogging;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
/**
|
||||
* nacos logging.
|
||||
*
|
||||
* @author mai.jh
|
||||
*/
|
||||
public class NacosLogging {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(NacosLogging.class);
|
||||
|
||||
private AbstractNacosLogging nacosLogging;
|
||||
|
||||
private boolean isLogback = false;
|
||||
|
||||
private NacosLogging() {
|
||||
try {
|
||||
Class.forName("ch.qos.logback.classic.Logger");
|
||||
nacosLogging = new LogbackNacosLogging();
|
||||
isLogback = true;
|
||||
} catch (ClassNotFoundException e) {
|
||||
nacosLogging = new Log4J2NacosLogging();
|
||||
}
|
||||
}
|
||||
|
||||
private static class NacosLoggingInstance {
|
||||
|
||||
private static final NacosLogging INSTANCE = new NacosLogging();
|
||||
}
|
||||
|
||||
public static NacosLogging getInstance() {
|
||||
return NacosLoggingInstance.INSTANCE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load logging Configuration.
|
||||
*/
|
||||
public void loadConfiguration() {
|
||||
try {
|
||||
nacosLogging.loadConfiguration();
|
||||
} catch (Throwable t) {
|
||||
if (isLogback) {
|
||||
LOGGER.warn("Load Logback Configuration of Nacos fail, message: {}", t.getMessage());
|
||||
} else {
|
||||
LOGGER.warn("Load Log4j Configuration of Nacos fail, message: {}", t.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -16,9 +16,7 @@
|
||||
|
||||
package com.alibaba.nacos.client.utils;
|
||||
|
||||
import com.alibaba.nacos.client.logging.AbstractNacosLogging;
|
||||
import com.alibaba.nacos.client.logging.log4j2.Log4J2NacosLogging;
|
||||
import com.alibaba.nacos.client.logging.logback.LogbackNacosLogging;
|
||||
import com.alibaba.nacos.client.logging.NacosLogging;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import static org.slf4j.LoggerFactory.getLogger;
|
||||
@ -34,33 +32,7 @@ public class LogUtils {
|
||||
public static final Logger NAMING_LOGGER;
|
||||
|
||||
static {
|
||||
try {
|
||||
boolean isLogback = false;
|
||||
AbstractNacosLogging nacosLogging;
|
||||
|
||||
try {
|
||||
Class.forName("ch.qos.logback.classic.Logger");
|
||||
nacosLogging = new LogbackNacosLogging();
|
||||
isLogback = true;
|
||||
} catch (ClassNotFoundException e) {
|
||||
nacosLogging = new Log4J2NacosLogging();
|
||||
}
|
||||
|
||||
try {
|
||||
nacosLogging.loadConfiguration();
|
||||
} catch (Throwable t) {
|
||||
if (isLogback) {
|
||||
getLogger(LogUtils.class)
|
||||
.warn("Load Logback Configuration of Nacos fail, message: {}", t.getMessage());
|
||||
} else {
|
||||
getLogger(LogUtils.class)
|
||||
.warn("Load Log4j Configuration of Nacos fail, message: {}", t.getMessage());
|
||||
}
|
||||
}
|
||||
} catch (Throwable ex) {
|
||||
getLogger(LogUtils.class).warn("Init Nacos Logging fail, message: {}", ex.getMessage());
|
||||
}
|
||||
|
||||
NacosLogging.getInstance().loadConfiguration();
|
||||
NAMING_LOGGER = getLogger("com.alibaba.nacos.client.naming");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user