|
@@ -0,0 +1,118 @@
|
|
|
+//package com.tidecloud.dataacceptance.config;
|
|
|
+//
|
|
|
+//import java.util.concurrent.Callable;
|
|
|
+//import java.util.concurrent.ExecutionException;
|
|
|
+//
|
|
|
+//import org.springframework.beans.BeansException;
|
|
|
+//import org.springframework.context.ApplicationContext;
|
|
|
+//import org.springframework.context.ApplicationContextAware;
|
|
|
+//import org.springframework.stereotype.Service;
|
|
|
+//
|
|
|
+//import com.google.common.cache.Cache;
|
|
|
+//import com.google.common.cache.CacheBuilder;
|
|
|
+//import com.tidecloud.dataacceptance.service.AcceptanceInboundHandlerAdapter;
|
|
|
+//
|
|
|
+//import ch.qos.logback.classic.spi.ILoggingEvent;
|
|
|
+//import ch.qos.logback.core.sift.AbstractDiscriminator;
|
|
|
+//
|
|
|
+//@Service
|
|
|
+//public class LogBackExtDiscriminator extends AbstractDiscriminator<ILoggingEvent> implements ApplicationContextAware {
|
|
|
+// private static final String KEY = "strategyName";
|
|
|
+// private String defaultValue;
|
|
|
+// private static ApplicationContext context;
|
|
|
+//
|
|
|
+// static Cache<String, loggerInfo> loggerNameCache = CacheBuilder.newBuilder()
|
|
|
+// // 设置cache的初始大小为10,要合理设置该值
|
|
|
+// .initialCapacity(10)
|
|
|
+// // 设置并发数为5,即同一时间最多只能有5个线程往cache执行写入操作
|
|
|
+// .concurrencyLevel(10)
|
|
|
+// // 构建cache实例
|
|
|
+// .build();
|
|
|
+// static Cache<String, String> loggerThreadCache = CacheBuilder.newBuilder()
|
|
|
+// // 设置cache的初始大小为10,要合理设置该值
|
|
|
+// .initialCapacity(10)
|
|
|
+// // 设置并发数为5,即同一时间最多只能有5个线程往cache执行写入操作
|
|
|
+// .concurrencyLevel(10)
|
|
|
+// // 构建cache实例
|
|
|
+// .build();
|
|
|
+//
|
|
|
+// class loggerInfo{
|
|
|
+// String loggerName ;
|
|
|
+// String loggerThread ;
|
|
|
+//
|
|
|
+// public String getLoggerName() {
|
|
|
+// return loggerName;
|
|
|
+// }
|
|
|
+// public void setLoggerName(String loggerName) {
|
|
|
+// this.loggerName = loggerName;
|
|
|
+// }
|
|
|
+// public String getLoggerThread() {
|
|
|
+// return loggerThread;
|
|
|
+// }
|
|
|
+// public void setLoggerThread(String loggerThread) {
|
|
|
+// this.loggerThread = loggerThread;
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+// @Override
|
|
|
+// public String getDiscriminatingValue(ILoggingEvent event) {
|
|
|
+// String loggerName = event.getLoggerName();
|
|
|
+// String loggerThread = event.getThreadName();
|
|
|
+// loggerInfo info = new loggerInfo();
|
|
|
+// info.setLoggerName(loggerName);
|
|
|
+// info.setLoggerThread(loggerThread);
|
|
|
+// String acceptClass = AcceptanceInboundHandlerAdapter.class.getPackage().getName();
|
|
|
+//
|
|
|
+// boolean isTrue = loggerName.startsWith(acceptClass);
|
|
|
+// if (!isTrue) {
|
|
|
+// return defaultValue;
|
|
|
+// }
|
|
|
+//
|
|
|
+// String cacheloggerName = loggerThreadCache.getIfPresent(loggerThread);
|
|
|
+// loggerNameCache.getIfPresent(loggerName);
|
|
|
+//
|
|
|
+// if (cacheloggerName == null) {
|
|
|
+//
|
|
|
+// try {
|
|
|
+// Class handlerClass = Class.forName(loggerName);
|
|
|
+// AcceptanceInboundHandlerAdapter handler = (AcceptanceInboundHandlerAdapter) context
|
|
|
+// .getBean(handlerClass);
|
|
|
+//
|
|
|
+// String name = handler.getPrefixName();
|
|
|
+// loggerThreadCache.put(loggerThread, name);
|
|
|
+// return name;
|
|
|
+// } catch (Exception e) {
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+// int dotIndex = loggerName.lastIndexOf('.');
|
|
|
+// if (dotIndex != -1 && dotIndex < loggerName.length() - 1) {
|
|
|
+// loggerName= loggerName.substring(dotIndex + 1);
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// }
|
|
|
+// loggerNameCache.put(loggerName, info);
|
|
|
+// return cacheloggerName;
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public String getKey() {
|
|
|
+// return KEY;
|
|
|
+// }
|
|
|
+//
|
|
|
+// public String getDefaultValue() {
|
|
|
+// return defaultValue;
|
|
|
+// }
|
|
|
+//
|
|
|
+// public void setDefaultValue(String defaultValue) {
|
|
|
+// this.defaultValue = defaultValue;
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
|
|
+// context = applicationContext;
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+//}
|