deason 4 жил өмнө
parent
commit
1e71c0d068
52 өөрчлөгдсөн 340 нэмэгдсэн , 414 устгасан
  1. 3 3
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/FileChangeWatchdog.java
  2. 3 3
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/concurrency/simple/ConcurrentTask.java
  3. 3 3
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/concurrency/simple/WorkerController.java
  4. 3 4
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/pipeline/SimpleNode.java
  5. 3 3
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/AES.java
  6. 3 3
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/DBUtil.java
  7. 9 9
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/HttpClientUtil.java
  8. 10 10
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/JsonMapper.java
  9. 3 3
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/OKHttpUtil.java
  10. 3 3
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/PropertiesUtil.java
  11. 0 42
      examcloud-commons/src/test/resources/log4j2.xml
  12. 6 9
      examcloud-reports-commons/src/main/java/cn/com/qmth/examcloud/reports/commons/util/ReportsUtil.java
  13. 2 2
      examcloud-starters/examcloud-geetest-starter/src/main/java/cn/com/qmth/examcloud/starters/greetest/GeetestAutoConfiguration.java
  14. 8 8
      examcloud-starters/examcloud-geetest-starter/src/main/java/cn/com/qmth/examcloud/starters/greetest/service/impl/GeetestServiceImpl.java
  15. 5 5
      examcloud-support/src/main/java/cn/com/qmth/examcloud/support/handler/richText/AudioTextHandler.java
  16. 5 5
      examcloud-support/src/main/java/cn/com/qmth/examcloud/support/handler/richText/ComplexTextHandler.java
  17. 6 6
      examcloud-support/src/main/java/cn/com/qmth/examcloud/support/handler/richText/HtmlTextHandler.java
  18. 6 6
      examcloud-support/src/main/java/cn/com/qmth/examcloud/support/handler/richText/ImageTextHandler.java
  19. 3 3
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/actuator/ApiStatusInfoHolder.java
  20. 29 29
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/baidu/BaiduClient.java
  21. 17 17
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/bootstrap/AppBootstrap.java
  22. 3 3
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/bootstrap/PropertyHolder.java
  23. 3 4
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/cache/CacheCloudServiceProvider.java
  24. 4 5
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/cloud/CloudClientConfiguration.java
  25. 18 23
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/cloud/CloudClientSupport.java
  26. 4 5
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/cloud/RibbonClientsConfiguration.java
  27. 2 3
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/druid/DruidDataSourceAutoConfigure.java
  28. 35 35
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/facepp/FaceppClient.java
  29. 3 1
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/filestorage/impl/AliyunFileStorageImpl.java
  30. 7 7
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/filestorage/impl/AliyunRefreshCdn.java
  31. 3 3
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/helpers/SequenceLockHelper.java
  32. 9 13
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/interceptor/ApiFlowLimitedInterceptor.java
  33. 7 9
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/interceptor/FirstInterceptor.java
  34. 3 3
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/interceptor/SeqlockInterceptor.java
  35. 3 3
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/mongodb/MongodbDetector.java
  36. 3 4
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/redis/CustomRedisConfiguration.java
  37. 5 5
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/redis/SimpleRedisClient.java
  38. 7 7
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/security/DataRuleInterceptor.java
  39. 3 7
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/security/RequestPermissionInterceptor.java
  40. 3 3
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/security/RpcInterceptor.java
  41. 16 18
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/ControllerAspect.java
  42. 3 7
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/ControllerSupport.java
  43. 7 7
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/CustomExceptionHandler.java
  44. 3 3
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/ExamCloudController.java
  45. 0 2
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/IpUtil.java
  46. 3 3
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/MockController.java
  47. 6 6
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/ServletUtil.java
  48. 12 14
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/task/AbstractTask.java
  49. 7 7
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/task/DistributionJob.java
  50. 15 15
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/task/QuartzManager.java
  51. 10 10
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/upyun/UpYunClient.java
  52. 3 3
      examcloud-web/src/main/java/cn/com/qmth/examcloud/web/upyun/UpyunServiceImpl.java

+ 3 - 3
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/FileChangeWatchdog.java

@@ -2,8 +2,8 @@ package cn.com.qmth.examcloud.commons.helpers;
 
 import java.io.File;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 文件变更监视器
@@ -14,7 +14,7 @@ public abstract class FileChangeWatchdog extends Thread {
 	/**
 	 * 属性注释
 	 */
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(FileChangeWatchdog.class);
+	private static final Logger LOG = LoggerFactory.getLogger(FileChangeWatchdog.class);
 
 	/**
 	 * 属性注释

+ 3 - 3
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/concurrency/simple/ConcurrentTask.java

@@ -5,9 +5,9 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.Util;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 并发任务
@@ -18,7 +18,7 @@ import cn.com.qmth.examcloud.commons.util.Util;
  */
 public class ConcurrentTask<T> {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(ConcurrentTask.class);
+	private static final Logger LOG = LoggerFactory.getLogger(ConcurrentTask.class);
 
 	private BlockingQueue<T> queue = new LinkedBlockingQueue<T>(10000);
 

+ 3 - 3
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/concurrency/simple/WorkerController.java

@@ -2,12 +2,12 @@ package cn.com.qmth.examcloud.commons.helpers.concurrency.simple;
 
 import java.util.concurrent.atomic.AtomicInteger;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class WorkerController {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(WorkerController.class);
+	private static final Logger LOG = LoggerFactory.getLogger(WorkerController.class);
 
 	private AtomicInteger warnCount = new AtomicInteger(0);
 

+ 3 - 4
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/pipeline/SimpleNode.java

@@ -11,10 +11,10 @@ import com.google.common.collect.Lists;
 
 import cn.com.qmth.examcloud.commons.helpers.KeyValuePair;
 import cn.com.qmth.examcloud.commons.helpers.ObjectHolder;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.ThreadLocalUtil;
 import cn.com.qmth.examcloud.commons.util.Util;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 简单节点
@@ -27,7 +27,7 @@ public class SimpleNode<KEYIN, VALUEIN, KEYOUT, VALUEOUT>
 		implements
 			Node<KEYIN, VALUEIN, KEYOUT, VALUEOUT> {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(SimpleNode.class);
+	private static final Logger LOG = LoggerFactory.getLogger(SimpleNode.class);
 
 	private String nodeName;
 
@@ -55,7 +55,6 @@ public class SimpleNode<KEYIN, VALUEIN, KEYOUT, VALUEOUT>
 	 * 构造函数
 	 *
 	 * @param nodeName
-	 * @param nodeExecuter
 	 * @param context
 	 */
 	public SimpleNode(String nodeName, NodeExecuter<KEYIN, VALUEIN, KEYOUT, VALUEOUT> executer,

+ 3 - 3
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/AES.java

@@ -14,8 +14,8 @@ import org.apache.commons.codec.binary.Hex;
 import org.apache.commons.lang3.StringUtils;
 
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * AES算法<br>
@@ -28,7 +28,7 @@ import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
  */
 public class AES {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(AES.class);
+	private static final Logger LOG = LoggerFactory.getLogger(AES.class);
 
 	private static final String KEY_ALGORITHM = "AES";
 

+ 3 - 3
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/DBUtil.java

@@ -12,8 +12,8 @@ import javax.sql.DataSource;
 import org.apache.commons.lang3.StringUtils;
 
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 类注释
@@ -25,7 +25,7 @@ public class DBUtil {
 	/**
 	 * 属性注释
 	 */
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(DBUtil.class);
+	private static final Logger LOG = LoggerFactory.getLogger(DBUtil.class);
 
 	/**
 	 * 属性注释

+ 9 - 9
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/HttpClientUtil.java

@@ -22,8 +22,8 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 
 import cn.com.qmth.examcloud.commons.helpers.JsonHttpResponseHolder;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * httpclient
@@ -34,7 +34,7 @@ import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
  */
 public class HttpClientUtil {
 
-	private static final ExamCloudLog LOGGER = ExamCloudLogFactory.getLog("HTTP_CLIENT_LOGGER");
+	private static final Logger LOG = LoggerFactory.getLogger(HttpClientUtil.class);
 
 	private static CloseableHttpClient httpclient;
 
@@ -95,20 +95,20 @@ public class HttpClientUtil {
 			responseHolder = new JsonHttpResponseHolder(statusCode, obj);
 
 			if (HttpStatus.SC_OK != responseHolder.getStatusCode()) {
-				LOGGER.error("[HTTP-FAIL]. statusCode=" + statusCode + "; responseEntity="
+				LOG.error("[HTTP-FAIL]. statusCode=" + statusCode + "; responseEntity="
 						+ entityStr + "; uri=" + request.getURI());
 			} else {
-				if (LOGGER.isDebugEnabled()) {
-					LOGGER.debug("[HTTP-OK]. statusCode=" + statusCode + "; responseEntity="
+				if (LOG.isDebugEnabled()) {
+					LOG.debug("[HTTP-OK]. statusCode=" + statusCode + "; responseEntity="
 							+ entityStr + "; uri=" + request.getURI());
 				}
 			}
 
 		} catch (Exception e) {
-			LOGGER.error("[HTTP-ERROR]. uri=" + request.getURI(), e);
+			LOG.error("[HTTP-ERROR]. uri=" + request.getURI(), e);
 		} finally {
 			IOUtils.closeQuietly(response);
-			LOGGER.debug("[HTTP-COST]. cost = " + (System.currentTimeMillis() - s) + " ms; uri="
+			LOG.debug("[HTTP-COST]. cost = " + (System.currentTimeMillis() - s) + " ms; uri="
 					+ request.getURI());
 		}
 		return responseHolder;
@@ -126,7 +126,7 @@ public class HttpClientUtil {
 				EntityUtils.consumeQuietly(resp.getEntity());
 				resp.close();
 			} catch (Exception e) {
-				LOGGER.error("fail to close http response stream.", e);
+				LOG.error("fail to close http response stream.", e);
 			}
 		}
 	}

+ 10 - 10
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/JsonMapper.java

@@ -23,7 +23,7 @@ import java.util.Map;
 @SuppressWarnings("unchecked")
 public class JsonMapper {
 
-    private static Logger log = LoggerFactory.getLogger(JsonMapper.class);
+    private static final Logger LOG = LoggerFactory.getLogger(JsonMapper.class);
 
     private ObjectMapper mapper;
 
@@ -88,7 +88,7 @@ public class JsonMapper {
         try {
             return mapper.writeValueAsString(object);
         } catch (IOException e) {
-            log.error("toJson error!" + e.getMessage(), e);
+            LOG.error("toJson error!" + e.getMessage(), e);
             return null;
         }
     }
@@ -107,7 +107,7 @@ public class JsonMapper {
         try {
             return mapper.readValue(jsonStr, clazz);
         } catch (IOException e) {
-            log.error("parseJson error!" + e.getMessage(), e);
+            LOG.error("parseJson error!" + e.getMessage(), e);
             return null;
         }
     }
@@ -123,7 +123,7 @@ public class JsonMapper {
         try {
             return (T) mapper.readValue(jsonStr, javaType);
         } catch (IOException e) {
-            log.error("parseJson error!" + e.getMessage(), e);
+            LOG.error("parseJson error!" + e.getMessage(), e);
             return null;
         }
     }
@@ -139,7 +139,7 @@ public class JsonMapper {
         try {
             return (T) mapper.readValue(jsonStr, javaType);
         } catch (IOException e) {
-            log.error("parseJson error!" + e.getMessage(), e);
+            LOG.error("parseJson error!" + e.getMessage(), e);
             return null;
         }
     }
@@ -156,7 +156,7 @@ public class JsonMapper {
             JavaType javaType = constructCollectionType(List.class, bean);
             return mapper.readValue(jsonStr, javaType);
         } catch (IOException e) {
-            log.error("parseJson error!" + e.getMessage(), e);
+            LOG.error("parseJson error!" + e.getMessage(), e);
             return null;
         }
     }
@@ -173,7 +173,7 @@ public class JsonMapper {
             JavaType javaType = constructMapType(HashMap.class, String.class, bean);
             return mapper.readValue(jsonStr, javaType);
         } catch (IOException e) {
-            log.error("parseJson error!" + e.getMessage(), e);
+            LOG.error("parseJson error!" + e.getMessage(), e);
             return null;
         }
     }
@@ -203,9 +203,9 @@ public class JsonMapper {
         try {
             mapper.readerForUpdating(object).readValue(jsonStr);
         } catch (JsonProcessingException e) {
-            log.error("updateJson error!" + e.getMessage(), e);
+            LOG.error("updateJson error!" + e.getMessage(), e);
         } catch (IOException e) {
-            log.error("updateJson error!" + e.getMessage(), e);
+            LOG.error("updateJson error!" + e.getMessage(), e);
         }
     }
 
@@ -249,7 +249,7 @@ public class JsonMapper {
             //mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
             return mapper.readTree(jsonStr);
         } catch (IOException e) {
-            log.error(e.getMessage(), e);
+            LOG.error(e.getMessage(), e);
             return null;
         }
     }

+ 3 - 3
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/OKHttpUtil.java

@@ -9,8 +9,6 @@ import java.util.concurrent.TimeUnit;
 import org.apache.commons.collections.CollectionUtils;
 
 import cn.com.qmth.examcloud.commons.helpers.FormFilePart;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import okhttp3.FormBody;
 import okhttp3.MediaType;
 import okhttp3.MultipartBody;
@@ -19,6 +17,8 @@ import okhttp3.Request;
 import okhttp3.Request.Builder;
 import okhttp3.RequestBody;
 import okhttp3.Response;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * OKHttp
@@ -29,7 +29,7 @@ import okhttp3.Response;
  */
 public class OKHttpUtil {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(OKHttpUtil.class);
+	private static final Logger LOG = LoggerFactory.getLogger(OKHttpUtil.class);
 
 	public static final class MediaTypes {
 

+ 3 - 3
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/PropertiesUtil.java

@@ -16,8 +16,8 @@ import org.apache.commons.lang.StringUtils;
 import com.google.common.collect.Sets;
 
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 类注释
@@ -28,7 +28,7 @@ import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
  */
 public class PropertiesUtil {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(PropertiesUtil.class);
+	private static final Logger LOG = LoggerFactory.getLogger(PropertiesUtil.class);
 
 	private static final Properties PROPS = new Properties();
 

+ 0 - 42
examcloud-commons/src/test/resources/log4j2.xml

@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Configuration status="WARN" monitorInterval="30">
-
-	<Properties>
-		<Property name="commonLevel" value="${sys:log.commonLevel}" />
-	</Properties>
-
-	<Appenders>
-		<!-- 控制台 日志 -->
-		<Console name="Console" target="SYSTEM_OUT">
-			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} | %m | %l%n" />
-		</Console>
-		<!-- debug 日志 -->
-		<RollingFile name="DEBUG_APPENDER" fileName="./logs/debug/debug.log" filePattern="./logs/debug/debug-%d{yyyy.MM.dd.HH}-%i.log">
-			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} | %m | %l%n" />
-			<Policies>
-				<TimeBasedTriggeringPolicy interval="1" />
-				<SizeBasedTriggeringPolicy size="100 MB" />
-			</Policies>
-			<DefaultRolloverStrategy max="10000">
-				<Delete basePath="./logs/debug" maxDepth="1">
-					<IfFileName glob="debug-*.log">
-						<IfAccumulatedFileSize exceeds="2 GB" />
-					</IfFileName>
-				</Delete>
-			</DefaultRolloverStrategy>
-		</RollingFile>
-	</Appenders>
-
-	<Loggers>
-		<Logger name="cn.tianji.heaven" level="DEBUG" additivity="false">
-			<AppenderRef ref="DEBUG_APPENDER" />
-			<AppenderRef ref="Console" />
-		</Logger>
-
-		<Root level="INFO">
-			<AppenderRef ref="Console" />
-			<AppenderRef ref="DEBUG_APPENDER" />
-		</Root>
-	</Loggers>
-
-</Configuration>

+ 6 - 9
examcloud-reports-commons/src/main/java/cn/com/qmth/examcloud/reports/commons/util/ReportsUtil.java

@@ -2,14 +2,11 @@ package cn.com.qmth.examcloud.reports.commons.util;
 
 import java.net.Inet4Address;
 import java.net.InetAddress;
-import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Properties;
 
-import javax.servlet.http.HttpServletRequest;
-
 import cn.com.qmth.examcloud.web.support.IpUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.slf4j.Logger;
@@ -32,7 +29,7 @@ import cn.com.qmth.examcloud.web.support.ServletUtil;
 
 public class ReportsUtil {
 
-	private final static Logger logger = LoggerFactory.getLogger(ReportsUtil.class);
+	private static final Logger LOG = LoggerFactory.getLogger(ReportsUtil.class);
 
 	private static final String KEY = "mq-report-data";
 
@@ -59,7 +56,7 @@ public class ReportsUtil {
 				// 在发送消息前,必须调用 start 方法来启动 Producer,只需调用一次即可。
 				producer.start();
 			} else {
-				logger.error("value of property[$report.mq-type] is wrong!");
+				LOG.error("value of property[$report.mq-type] is wrong!");
 			}
 		}
 	}
@@ -83,11 +80,11 @@ public class ReportsUtil {
 							@Override
 							public void onException(OnExceptionContext context) {
 								// 消息发送失败,需要进行重试处理,可重新发送这条消息或持久化这条数据进行补偿处理。
-								logger.error("SendReport failed msgId:"+msg+" " + messageStr, context.getException());
+								LOG.error("SendReport failed msgId:"+msg+" " + messageStr, context.getException());
 							}
 						});
 					} catch (Exception e) {
-						logger.error("SendReport Error:" + JSON.toJSONString(b), e);
+						LOG.error("SendReport Error:" + JSON.toJSONString(b), e);
 					}
 				}
 			}
@@ -109,7 +106,7 @@ public class ReportsUtil {
 			}
 			list.add(report);
 		} catch (Exception e) {
-			logger.error(JSON.toJSONString(report), e);
+			LOG.error(JSON.toJSONString(report), e);
 		}
 	}
 
@@ -125,7 +122,7 @@ public class ReportsUtil {
 			InetAddress localHost = Inet4Address.getLocalHost();
 			ip = localHost.getHostAddress();
 		} catch (Exception e) {
-			logger.debug("获取本机IP出错", e);
+			LOG.debug("获取本机IP出错", e);
 		}
 		report.setReportHost(ip);
 		report.setRemoteHost(IpUtil.getRemoteIp(ServletUtil.getRequest()));

+ 2 - 2
examcloud-starters/examcloud-geetest-starter/src/main/java/cn/com/qmth/examcloud/starters/greetest/GeetestAutoConfiguration.java

@@ -19,11 +19,11 @@ import org.springframework.context.annotation.Configuration;
 @EnableConfigurationProperties(GeetestProperties.class)
 public class GeetestAutoConfiguration {
 
-    private final static Logger log = LoggerFactory.getLogger(GeetestAutoConfiguration.class);
+    private static final Logger LOG = LoggerFactory.getLogger(GeetestAutoConfiguration.class);
 
     @Bean
     public GeetestService geetestService(@Autowired GeetestProperties properties, @Autowired GeetestSessionManager sessionManager) {
-        log.info("geetestService init...");
+        LOG.info("geetestService init...");
 
         GeetestServiceImpl impl = new GeetestServiceImpl();
         impl.setProperties(properties);

+ 8 - 8
examcloud-starters/examcloud-geetest-starter/src/main/java/cn/com/qmth/examcloud/starters/greetest/service/impl/GeetestServiceImpl.java

@@ -30,7 +30,7 @@ import java.util.concurrent.TimeUnit;
  */
 public class GeetestServiceImpl implements GeetestService {
 
-    private final static Logger log = LoggerFactory.getLogger(GeetestServiceImpl.class);
+    private static final Logger LOG = LoggerFactory.getLogger(GeetestServiceImpl.class);
 
     private GeetestProperties properties;
 
@@ -46,7 +46,7 @@ public class GeetestServiceImpl implements GeetestService {
         }
 
         String params = this.buildRegisterParams(req);
-        log.info("[Geetest register] " + params);
+        LOG.info("[Geetest register] " + params);
         String requestUrl = properties.getApiUrl() + "/register.php" + params;
 
         String challenge = null;
@@ -54,13 +54,13 @@ public class GeetestServiceImpl implements GeetestService {
         try (Response response = this.httpClient().newCall(request.build()).execute();
              ResponseBody body = response.body();) {
             String bodyStr = body.string();
-            log.info("[Geetest register] response:" + response.code() + " body:" + bodyStr);
+            LOG.info("[Geetest register] response:" + response.code() + " body:" + bodyStr);
 
             if (response.isSuccessful()) {
                 challenge = this.parseJsonValue(bodyStr, "challenge");
             }
         } catch (Exception e) {
-            log.error("[Geetest register] error:" + e.getMessage(), e);
+            LOG.error("[Geetest register] error:" + e.getMessage(), e);
         }
 
         // 封装结果
@@ -111,7 +111,7 @@ public class GeetestServiceImpl implements GeetestService {
         }
 
         String params = this.buildValidateParams(req);
-        log.info("[Geetest validate] " + params);
+        LOG.info("[Geetest validate] " + params);
         String requestUrl = properties.getApiUrl() + "/validate.php" + params;
 
         String seccode = null;
@@ -120,13 +120,13 @@ public class GeetestServiceImpl implements GeetestService {
         try (Response response = this.httpClient().newCall(request.build()).execute();
              ResponseBody body = response.body();) {
             String bodyStr = body.string();
-            log.info("[Geetest validate] response:" + response.code() + " body:" + bodyStr);
+            LOG.info("[Geetest validate] response:" + response.code() + " body:" + bodyStr);
 
             if (response.isSuccessful()) {
                 seccode = this.parseJsonValue(bodyStr, "seccode");
             }
         } catch (Exception e) {
-            log.error("[Geetest validate] error:" + e.getMessage(), e);
+            LOG.error("[Geetest validate] error:" + e.getMessage(), e);
         }
 
         // 封装结果
@@ -215,7 +215,7 @@ public class GeetestServiceImpl implements GeetestService {
             JsonNode jsonNode = new ObjectMapper().readTree(json);
             return jsonNode.get(fieldName).asText();
         } catch (Exception e) {
-            log.warn(String.format("[%s] json value not exist...", fieldName));
+            LOG.warn(String.format("[%s] json value not exist...", fieldName));
         }
         return null;
     }

+ 5 - 5
examcloud-support/src/main/java/cn/com/qmth/examcloud/support/handler/richText/AudioTextHandler.java

@@ -5,8 +5,8 @@ import cn.com.qmth.examcloud.support.handler.richText.bean.BlockBean;
 import cn.com.qmth.examcloud.support.handler.richText.bean.SectionBean;
 import cn.com.qmth.examcloud.support.handler.richText.bean.SectionCollectionBean;
 import com.mysql.cj.util.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -18,12 +18,12 @@ import java.util.List;
  * @Version 1.0
  */
 public class AudioTextHandler implements RichTextHandler{
-    private static Log logger = LogFactory.getLog(HtmlTextHandler.class);
+    private static final Logger LOG = LoggerFactory.getLogger(AudioTextHandler.class);
 
     @Override
     public SectionCollectionBean handle(String richText) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("[HTML-TEXT-HANDLER]--richText: " + richText);
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("[HTML-TEXT-HANDLER]--richText: " + richText);
         }
 
         if (StringUtils.isNullOrEmpty(richText)) {

+ 5 - 5
examcloud-support/src/main/java/cn/com/qmth/examcloud/support/handler/richText/ComplexTextHandler.java

@@ -6,12 +6,12 @@ import cn.com.qmth.examcloud.support.handler.richText.bean.SectionBean;
 import cn.com.qmth.examcloud.support.handler.richText.bean.SectionCollectionBean;
 import com.mysql.cj.util.StringUtils;
 import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Element;
 import org.jsoup.nodes.Node;
 import org.jsoup.nodes.TextNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -25,7 +25,7 @@ import java.util.Map;
  * @Version 1.0
  */
 public class ComplexTextHandler implements RichTextHandler {
-    private static Log logger = LogFactory.getLog(HtmlTextHandler.class);
+    private static final Logger LOG = LoggerFactory.getLogger(HtmlTextHandler.class);
 
     private static final Map<String, String> TEXT_PARAM_MAP = new HashMap<>();
 
@@ -52,8 +52,8 @@ public class ComplexTextHandler implements RichTextHandler {
 
     @Override
     public SectionCollectionBean handle(String richText) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("[HTML-TEXT-HANDLER]--richText: " + richText);
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("[HTML-TEXT-HANDLER]--richText: " + richText);
         }
 
         if (StringUtils.isNullOrEmpty(richText)) {

+ 6 - 6
examcloud-support/src/main/java/cn/com/qmth/examcloud/support/handler/richText/HtmlTextHandler.java

@@ -1,6 +1,5 @@
 package cn.com.qmth.examcloud.support.handler.richText;
 
-import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.commons.util.RegExpUtil;
 import cn.com.qmth.examcloud.support.enums.BlockType;
 import cn.com.qmth.examcloud.support.handler.richText.bean.BlockBean;
@@ -9,10 +8,10 @@ import cn.com.qmth.examcloud.support.handler.richText.bean.SectionCollectionBean
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 import com.mysql.cj.util.StringUtils;
 import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.jsoup.Jsoup;
 import org.jsoup.safety.Whitelist;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -26,7 +25,8 @@ import java.util.Map;
  * @Version 1.0
  */
 public class HtmlTextHandler implements RichTextHandler {
-    private static Log logger = LogFactory.getLog(HtmlTextHandler.class);
+
+    private static final Logger LOG = LoggerFactory.getLogger(HtmlTextHandler.class);
 
     private static Map<String, String> tagMap;
     private static String DEFAULT_RETAIN_TAG = "b,u,i,sup,sub";
@@ -43,8 +43,8 @@ public class HtmlTextHandler implements RichTextHandler {
     @Override
     public SectionCollectionBean handle(String richText) {
 
-        if (logger.isDebugEnabled()) {
-            logger.debug("[HTML-TEXT-HANDLER]--richText: " + richText);
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("[HTML-TEXT-HANDLER]--richText: " + richText);
         }
 
         if (StringUtils.isNullOrEmpty(richText)) {

+ 6 - 6
examcloud-support/src/main/java/cn/com/qmth/examcloud/support/handler/richText/ImageTextHandler.java

@@ -1,6 +1,5 @@
 package cn.com.qmth.examcloud.support.handler.richText;
 
-import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.commons.util.RegExpUtil;
 import cn.com.qmth.examcloud.support.enums.BlockType;
 import cn.com.qmth.examcloud.support.handler.richText.bean.BlockBean;
@@ -8,13 +7,13 @@ import cn.com.qmth.examcloud.support.handler.richText.bean.SectionBean;
 import cn.com.qmth.examcloud.support.handler.richText.bean.SectionCollectionBean;
 import com.mysql.cj.util.StringUtils;
 import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
 import org.jsoup.safety.Whitelist;
 import org.jsoup.select.Elements;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -28,12 +27,13 @@ import java.util.Map;
  * @Version 1.0
  */
 public class ImageTextHandler implements RichTextHandler {
-    private static Log logger = LogFactory.getLog(HtmlTextHandler.class);
+
+    private static final Logger LOG = LoggerFactory.getLogger(ImageTextHandler.class);
 
     @Override
     public SectionCollectionBean handle(String richText) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("[HTML-TEXT-HANDLER]--richText: " + richText);
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("[HTML-TEXT-HANDLER]--richText: " + richText);
         }
 
         if (StringUtils.isNullOrEmpty(richText)) {

+ 3 - 3
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/actuator/ApiStatusInfoHolder.java

@@ -1,12 +1,12 @@
 package cn.com.qmth.examcloud.web.actuator;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.Util;
 import cn.com.qmth.examcloud.web.support.SpringContextHolder;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.lang3.RandomUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.core.annotation.Order;
@@ -22,7 +22,7 @@ import java.util.stream.Collectors;
 @Order(1000)
 public class ApiStatusInfoHolder implements ApplicationRunner {
 
-    private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(ApiStatusInfoHolder.class);
+    private static final Logger LOG = LoggerFactory.getLogger(ApiStatusInfoHolder.class);
 
     private static Map<String, ApiStatusInfo> apiStatusInfoMap = Maps.newHashMap();
 

+ 29 - 29
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/baidu/BaiduClient.java

@@ -27,10 +27,10 @@ import com.google.common.collect.Maps;
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.commons.helpers.JsonHttpResponseHolder;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * baidu 客户端
@@ -41,7 +41,7 @@ import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
  */
 public class BaiduClient {
 
-	protected static ExamCloudLog log = ExamCloudLogFactory.getLog(BaiduClient.class);
+	private static final Logger LOG = LoggerFactory.getLogger(BaiduClient.class);
 
 	private static CloseableHttpClient httpclient;
 
@@ -92,10 +92,10 @@ public class BaiduClient {
 		secretKey = PropertyHolder.getString("$baidu.secretKey");
 
 		if (StringUtils.isBlank(apiKey)) {
-			log.error("'facepp.apiKey' is not configured");
+			LOG.error("'facepp.apiKey' is not configured");
 		}
 		if (StringUtils.isBlank(secretKey)) {
-			log.error("'facepp.secretKey' is not configured");
+			LOG.error("'facepp.secretKey' is not configured");
 		}
 	}
 
@@ -124,24 +124,24 @@ public class BaiduClient {
 			responseHolder = new JsonHttpResponseHolder(statusCode, obj);
 
 			if (HttpStatus.SC_OK != responseHolder.getStatusCode()) {
-				log.error("[Baidu AI Response]. statusCode=" + statusCode + "; responseEntity="
+				LOG.error("[Baidu AI Response]. statusCode=" + statusCode + "; responseEntity="
 						+ entityStr);
 			} else {
-				if (log.isDebugEnabled()) {
-					log.debug("[Baidu AI Response]. statusCode=" + statusCode + "; responseEntity="
+				if (LOG.isDebugEnabled()) {
+					LOG.debug("[Baidu AI Response]. statusCode=" + statusCode + "; responseEntity="
 							+ entityStr);
 				}
 			}
 
 		} catch (Exception e) {
-			log.error("[Baidu AI FAIL]. fail to get access token.", e);
+			LOG.error("[Baidu AI FAIL]. fail to get access token.", e);
 			throw new ExamCloudRuntimeException(e);
 		} finally {
 			IOUtils.closeQuietly(response);
 		}
 
-		if (log.isDebugEnabled()) {
-			log.debug("[Baidu AI]. cost " + (System.currentTimeMillis() - s) + " ms.");
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[Baidu AI]. cost " + (System.currentTimeMillis() - s) + " ms.");
 		}
 
 		int statusCode = responseHolder.getStatusCode();
@@ -164,8 +164,8 @@ public class BaiduClient {
 	 */
 	public JsonHttpResponseHolder verifyFaceLiveness(String imageUrl) {
 
-		if (log.isDebugEnabled()) {
-			log.debug("[Baidu AI]. imageUrl=" + imageUrl);
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[Baidu AI]. imageUrl=" + imageUrl);
 		}
 
 		String accessToken = getAccessToken();
@@ -198,24 +198,24 @@ public class BaiduClient {
 			responseHolder = new JsonHttpResponseHolder(statusCode, obj);
 
 			if (HttpStatus.SC_OK != responseHolder.getStatusCode()) {
-				log.error("[Baidu AI Response]. statusCode=" + statusCode + "; responseEntity="
+				LOG.error("[Baidu AI Response]. statusCode=" + statusCode + "; responseEntity="
 						+ entityStr);
 			} else {
-				if (log.isDebugEnabled()) {
-					log.debug("[Baidu AI Response]. statusCode=" + statusCode + "; responseEntity="
+				if (LOG.isDebugEnabled()) {
+					LOG.debug("[Baidu AI Response]. statusCode=" + statusCode + "; responseEntity="
 							+ entityStr);
 				}
 			}
 
 		} catch (Exception e) {
-			log.error("[Baidu AI FAIL].", e);
+			LOG.error("[Baidu AI FAIL].", e);
 			throw new ExamCloudRuntimeException(e);
 		} finally {
 			IOUtils.closeQuietly(response);
 		}
 
-		if (log.isDebugEnabled()) {
-			log.debug("[Baidu AI]. imageUrl=" + imageUrl + "; cost "
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[Baidu AI]. imageUrl=" + imageUrl + "; cost "
 					+ (System.currentTimeMillis() - s) + " ms.");
 		}
 
@@ -260,17 +260,17 @@ public class BaiduClient {
 			responseHolder = new JsonHttpResponseHolder(statusCode, obj);
 
 			if (HttpStatus.SC_OK != responseHolder.getStatusCode()) {
-				log.error("[Baidu AI Response]. statusCode=" + statusCode + "; responseEntity="
+				LOG.error("[Baidu AI Response]. statusCode=" + statusCode + "; responseEntity="
 						+ entityStr);
 			} else {
-				if (log.isDebugEnabled()) {
-					log.debug("[Baidu AI Response]. statusCode=" + statusCode + "; responseEntity="
+				if (LOG.isDebugEnabled()) {
+					LOG.debug("[Baidu AI Response]. statusCode=" + statusCode + "; responseEntity="
 							+ entityStr);
 				}
 			}
 
 		} catch (Exception e) {
-			log.error("[Baidu AI FAIL].", e);
+			LOG.error("[Baidu AI FAIL].", e);
 			throw new ExamCloudRuntimeException(e);
 		} finally {
 			IOUtils.closeQuietly(response);
@@ -298,8 +298,8 @@ public class BaiduClient {
 	public JsonHttpResponseHolder verifyFaceLiveness(String imageUrl, String backupImageUrl)
 			throws StatusException {
 
-		if (log.isDebugEnabled()) {
-			log.debug("[Face++]. imageUrl=" + imageUrl + "; backupImageUrl=" + backupImageUrl);
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[Face++]. imageUrl=" + imageUrl + "; backupImageUrl=" + backupImageUrl);
 		}
 
 		JsonHttpResponseHolder responseHolder = null;
@@ -364,17 +364,17 @@ public class BaiduClient {
 				imageBase64 = Base64.encodeBase64String(byteArray);
 
 			} catch (StatusException e) {
-				log.error("fail to download image file. url=" + backupImageUrl, e);
+				LOG.error("fail to download image file. url=" + backupImageUrl, e);
 				throw e;
 			} catch (Exception e) {
-				log.error("fail to download image file. url=" + backupImageUrl, e);
+				LOG.error("fail to download image file. url=" + backupImageUrl, e);
 				throw new StatusException("903", "fail to download file. url=" + backupImageUrl, e);
 			} finally {
 				IOUtils.closeQuietly(response);
 			}
 
-			if (log.isDebugEnabled()) {
-				log.debug("download image file successfully; url=" + backupImageUrl + "; cost "
+			if (LOG.isDebugEnabled()) {
+				LOG.debug("download image file successfully; url=" + backupImageUrl + "; cost "
 						+ (System.currentTimeMillis() - s) + " ms.");
 			}
 

+ 17 - 17
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/bootstrap/AppBootstrap.java

@@ -1,8 +1,6 @@
 package cn.com.qmth.examcloud.web.bootstrap;
 
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.*;
 import cn.com.qmth.examcloud.web.cloud.AppSelf;
 import cn.com.qmth.examcloud.web.cloud.AppSelfHolder;
@@ -12,6 +10,8 @@ import okhttp3.Response;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.ThreadContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.boot.SpringApplication;
 import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.http.HttpStatus;
@@ -30,7 +30,7 @@ import java.util.Set;
  */
 public class AppBootstrap {
 
-    private static ExamCloudLog log = ExamCloudLogFactory.getLog(AppBootstrap.class);
+    private static final Logger LOG = LoggerFactory.getLogger(AppBootstrap.class);
 
     private static Map<String, String> properties;
 
@@ -60,7 +60,7 @@ public class AppBootstrap {
                                                                   String... args) {
 
         ThreadContext.put("TRACE_ID", Thread.currentThread().getName());
-        log.info("Starting...");
+        LOG.info("Starting...");
 
         checkBootstrapParams(args);
 
@@ -112,7 +112,7 @@ public class AppBootstrap {
         } catch (Exception e) {
             String stackTrace = Util.getStackTrace(e);
             noticeConfigCenter("failure:\n" + stackTrace);
-            log.error("fail to run spring app.", e);
+            LOG.error("fail to run spring app.", e);
             System.exit(-1);
         }
 
@@ -166,7 +166,7 @@ public class AppBootstrap {
             headers.put("Trace-Id", startupCode);
             resp = OKHttpUtil.call(HttpMethod.POST, url.toString(), headers, req);
         } catch (Exception e) {
-            log.error("fail to notice config center.", e);
+            LOG.error("fail to notice config center.", e);
             System.exit(-1);
         } finally {
             IOUtils.closeQuietly(resp);
@@ -209,7 +209,7 @@ public class AppBootstrap {
             properties = map;
 
         } catch (Exception e) {
-            log.error("fail to send startup request to config center.", e);
+            LOG.error("fail to send startup request to config center.", e);
             System.exit(-1);
         } finally {
             IOUtils.closeQuietly(resp);
@@ -253,9 +253,9 @@ public class AppBootstrap {
                 active = value.trim();
             }
         }
-        log.info("active=" + active);
+        LOG.info("active=" + active);
         if (StringUtils.isBlank(active)) {
-            log.error("property[spring.profiles.active] is not specified");
+            LOG.error("property[spring.profiles.active] is not specified");
             System.exit(-1);
         }
 
@@ -266,9 +266,9 @@ public class AppBootstrap {
                 startupCode = value.trim();
             }
         }
-        log.info("startupCode=" + startupCode);
+        LOG.info("startupCode=" + startupCode);
         if (StringUtils.isBlank(startupCode)) {
-            log.error("property[examcloud.startup.startupCode] is not specified");
+            LOG.error("property[examcloud.startup.startupCode] is not specified");
             System.exit(-1);
         }
 
@@ -279,9 +279,9 @@ public class AppBootstrap {
                 appCode = value.trim();
             }
         }
-        log.info("appCode=" + appCode);
+        LOG.info("appCode=" + appCode);
         if (StringUtils.isBlank(appCode)) {
-            log.error("property[examcloud.startup.appCode] is not specified");
+            LOG.error("property[examcloud.startup.appCode] is not specified");
             System.exit(-1);
         }
 
@@ -292,9 +292,9 @@ public class AppBootstrap {
                 configCenterHost = value.trim();
             }
         }
-        log.info("configCenterHost=" + configCenterHost);
+        LOG.info("configCenterHost=" + configCenterHost);
         if (StringUtils.isBlank(configCenterHost)) {
-            log.error("property[examcloud.startup.configCenterHost] is not specified");
+            LOG.error("property[examcloud.startup.configCenterHost] is not specified");
             System.exit(-1);
         }
 
@@ -305,9 +305,9 @@ public class AppBootstrap {
                 configCenterPort = value.trim();
             }
         }
-        log.info("configCenterPort=" + configCenterPort);
+        LOG.info("configCenterPort=" + configCenterPort);
         if (null == configCenterPort) {
-            log.error("property[examcloud.startup.configCenterPort] is not specified");
+            LOG.error("property[examcloud.startup.configCenterPort] is not specified");
             System.exit(-1);
         }
 

+ 3 - 3
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/bootstrap/PropertyHolder.java

@@ -4,9 +4,9 @@ import java.util.Properties;
 
 import org.apache.commons.lang3.StringUtils;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.PropertiesUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 云配置
@@ -17,7 +17,7 @@ import cn.com.qmth.examcloud.commons.util.PropertiesUtil;
  */
 public class PropertyHolder {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(PropertyHolder.class);
+	private static final Logger LOG = LoggerFactory.getLogger(PropertyHolder.class);
 
 	private static final Properties PROPS = new Properties();
 

+ 3 - 4
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/cache/CacheCloudServiceProvider.java

@@ -2,6 +2,8 @@ package cn.com.qmth.examcloud.web.cache;
 
 import java.util.Map;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -13,8 +15,6 @@ import cn.com.qmth.examcloud.api.commons.CloudService;
 import cn.com.qmth.examcloud.api.commons.enums.BasicDataType;
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.web.support.SpringContextHolder;
 
@@ -31,8 +31,7 @@ public class CacheCloudServiceProvider implements CloudService {
 
 	private static final long serialVersionUID = -5326807830421467943L;
 
-	protected static final ExamCloudLog LOG = ExamCloudLogFactory
-			.getLog(CacheCloudServiceProvider.class);
+    private static final Logger LOG = LoggerFactory.getLogger(CacheCloudServiceProvider.class);
 
 	private static Map<String, ObjectCache<?>> map = Maps.newConcurrentMap();
 	

+ 4 - 5
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/cloud/CloudClientConfiguration.java

@@ -5,6 +5,8 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.client.loadbalancer.LoadBalanced;
 import org.springframework.cloud.netflix.ribbon.RibbonClients;
@@ -18,8 +20,6 @@ import org.springframework.http.client.SimpleClientHttpRequestFactory;
 import org.springframework.web.client.DefaultResponseErrorHandler;
 import org.springframework.web.client.RestTemplate;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 
 /**
@@ -33,8 +33,7 @@ import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 @RibbonClients(defaultConfiguration = RibbonClientsConfiguration.class)
 public class CloudClientConfiguration {
 
-	private static final ExamCloudLog DEBUG_LOG = ExamCloudLogFactory
-			.getLog(CloudClientConfiguration.class);
+	private static final Logger LOG = LoggerFactory.getLogger(CloudClientConfiguration.class);
 
 	@Bean
 	@LoadBalanced
@@ -68,7 +67,7 @@ public class CloudClientConfiguration {
 		if (httpRequestFactory.equals("OkHttp3")) {
 			return buildOkHttp3ClientHttpRequestFactory();
 		} else {
-			DEBUG_LOG.info(
+			LOG.info(
 					"value of property[examcloud.rpc.httpRequestFactory] is wrong. will use default value [OkHttp3] .");
 			return buildOkHttp3ClientHttpRequestFactory();
 		}

+ 18 - 23
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/cloud/CloudClientSupport.java

@@ -5,6 +5,8 @@ import java.util.Map;
 import java.util.Map.Entry;
 
 import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.core.io.FileSystemResource;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -22,8 +24,6 @@ import cn.com.qmth.examcloud.api.commons.exchange.FormRequest;
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.ByteUtil;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.commons.util.SHA256;
@@ -43,11 +43,7 @@ import cn.com.qmth.examcloud.web.support.StatusResponse;
  */
 public abstract class CloudClientSupport {
 
-	/**
-	 * 接口日志
-	 */
-	protected static final ExamCloudLog INTERFACE_LOG = ExamCloudLogFactory
-			.getLog("INTERFACE_LOGGER");
+	protected static final Logger LOGGER = LoggerFactory.getLogger(CloudClientSupport.class);
 
 	private RestTemplate restTemplate;
 
@@ -190,12 +186,12 @@ public abstract class CloudClientSupport {
 		String accessToken = ByteUtil.toHexAscii(bytes);
 		httpHeaders.add("Access-Token", accessToken);
 
-		if (INTERFACE_LOG.isInfoEnabled()) {
-			INTERFACE_LOG.info("[CALL-IN]. url=" + url);
+		if (LOGGER.isInfoEnabled()) {
+			LOGGER.info("[CALL-IN]. url=" + url);
 			if (null == body) {
-				INTERFACE_LOG.info("[CALL-REQ]. request= void");
+				LOGGER.info("[CALL-REQ]. request= void");
 			} else if (body instanceof JsonSerializable) {
-				INTERFACE_LOG.info("[CALL-REQ]. request=" + JsonUtil.toJson(body, excludeFields));
+				LOGGER.info("[CALL-REQ]. request=" + JsonUtil.toJson(body, excludeFields));
 			}
 		}
 
@@ -212,33 +208,33 @@ public abstract class CloudClientSupport {
 					requestEntity, String.class);
 			respBody = getRespBody(respEntity, responseType);
 
-			if (INTERFACE_LOG.isDebugEnabled() && getLogProperties().isNormalResponseLogEnable()) {
+			if (LOGGER.isDebugEnabled() && getLogProperties().isNormalResponseLogEnable()) {
 				String respEntityBody = respEntity.getBody();
 				int responseJsonMaxSize = getLogProperties().getResponseLogJsonMaxSize();
 				if (null == respEntityBody) {
-					INTERFACE_LOG.debug("[CALL-RESP]. response= void");
+					LOGGER.debug("[CALL-RESP]. response= void");
 				} else if (respEntityBody.length() > responseJsonMaxSize) {
-					INTERFACE_LOG.debug("[CALL-RESP]. response= too large");
+					LOGGER.debug("[CALL-RESP]. response= too large");
 				} else {
-					INTERFACE_LOG.debug("[CALL-RESP]. response=" + respEntityBody);
+					LOGGER.debug("[CALL-RESP]. response=" + respEntityBody);
 				}
 			}
-			if (INTERFACE_LOG.isInfoEnabled()) {
-				INTERFACE_LOG.info(StringUtil.join("[CALL-OK]. url=" + url,
+			if (LOGGER.isInfoEnabled()) {
+				LOGGER.info(StringUtil.join("[CALL-OK]. url=" + url,
 						" ; cost " + (System.currentTimeMillis() - startTime), " ms."));
 			}
 		} catch (ApiFlowLimitedException e) {
-			INTERFACE_LOG.error(StringUtil.join("[CALL-FAIL]. url=" + url,
+			LOGGER.error(StringUtil.join("[CALL-FAIL]. url=" + url,
 					" ; cost " + (System.currentTimeMillis() - startTime), " ms."));
-			INTERFACE_LOG.error("[CALL-RESP]. response=" + e.toJson());
+			LOGGER.error("[CALL-RESP]. response=" + e.toJson());
 			throw e;
 		} catch (StatusException e) {
-			INTERFACE_LOG.error(StringUtil.join("[CALL-FAIL]. url=" + url,
+			LOGGER.error(StringUtil.join("[CALL-FAIL]. url=" + url,
 					" ; cost " + (System.currentTimeMillis() - startTime), " ms."));
-			INTERFACE_LOG.error("[CALL-RESP]. response=" + e.toJson());
+			LOGGER.error("[CALL-RESP]. response=" + e.toJson());
 			throw e;
 		} catch (Exception e) {
-			INTERFACE_LOG.error(StringUtil.join("[CALL-FATAL]. url=" + url, " ;", e.getMessage()));
+			LOGGER.error(StringUtil.join("[CALL-FATAL]. url=" + url, " ;", e.getMessage()));
 			throw e;
 		}
 
@@ -287,7 +283,6 @@ public abstract class CloudClientSupport {
 	 * @author WANGWEI
 	 * @param requestMapping
 	 * @param req
-	 * @param file
 	 * @param responseType
 	 * @return
 	 * @throws Exception

+ 4 - 5
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/cloud/RibbonClientsConfiguration.java

@@ -1,5 +1,7 @@
 package cn.com.qmth.examcloud.web.cloud;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -7,8 +9,6 @@ import com.netflix.loadbalancer.IPing;
 import com.netflix.loadbalancer.IRule;
 import com.netflix.loadbalancer.PingUrl;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 
 /**
@@ -21,8 +21,7 @@ import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 @Configuration
 public class RibbonClientsConfiguration {
 
-	private static final ExamCloudLog DEBUG_LOG = ExamCloudLogFactory
-			.getLog(CloudClientConfiguration.class);
+	private static final Logger LOG = LoggerFactory.getLogger(RibbonClientsConfiguration.class);
 
 	@Bean
 	public IRule ribbonRule() {
@@ -42,7 +41,7 @@ public class RibbonClientsConfiguration {
 		} else if (rule.equals("WeightedResponseTimeRule")) {
 			return new com.netflix.loadbalancer.WeightedResponseTimeRule();
 		} else {
-			DEBUG_LOG.info(
+			LOG.info(
 					"value of property[examcloud.rpc.balance.rule] is wrong. will use default value [BestAvailableRule] .");
 			return new com.netflix.loadbalancer.WeightedResponseTimeRule();
 		}

+ 2 - 3
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/druid/DruidDataSourceAutoConfigure.java

@@ -31,14 +31,13 @@ import cn.com.qmth.examcloud.web.druid.stat.DruidWebStatFilterConfiguration;
 		DruidWebStatFilterConfiguration.class, DruidFilterConfiguration.class})
 public class DruidDataSourceAutoConfigure {
 
-	private static final Logger LOGGER = LoggerFactory
-			.getLogger(DruidDataSourceAutoConfigure.class);
+	private static final Logger LOG = LoggerFactory.getLogger(DruidDataSourceAutoConfigure.class);
 
 	@Bean(initMethod = "init")
 	@ConditionalOnMissingBean
 	@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource", matchIfMissing = false)
 	public DataSource dataSource() {
-		LOGGER.info("Init DruidDataSource");
+		LOG.info("Init DruidDataSource");
 		return new DruidDataSourceWrapper();
 	}
 }

+ 35 - 35
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/facepp/FaceppClient.java

@@ -24,9 +24,9 @@ import com.alibaba.fastjson.JSONObject;
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.commons.helpers.JsonHttpResponseHolder;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * face++ 客户端
@@ -37,7 +37,7 @@ import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
  */
 public class FaceppClient {
 
-	protected static ExamCloudLog log = ExamCloudLogFactory.getLog(FaceppClient.class);
+	private static final Logger LOG = LoggerFactory.getLogger(FaceppClient.class);
 
 	private static CloseableHttpClient httpclient;
 
@@ -90,10 +90,10 @@ public class FaceppClient {
 		apiSecret = PropertyHolder.getString("$facepp.apiSecret");
 
 		if (StringUtils.isBlank(apiKey)) {
-			log.error("'facepp.apiKey' is not configured");
+			LOG.error("'facepp.apiKey' is not configured");
 		}
 		if (StringUtils.isBlank(apiSecret)) {
-			log.error("'facepp.apiSecret' is not configured");
+			LOG.error("'facepp.apiSecret' is not configured");
 		}
 	}
 
@@ -107,8 +107,8 @@ public class FaceppClient {
 	 */
 	public JsonHttpResponseHolder compareWithTokenAndImageUrl(String faceToken, String imageUrl) {
 
-		if (log.isDebugEnabled()) {
-			log.debug("[Face++ Request]. faceToken=" + faceToken + "; imageUrl=" + imageUrl);
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[Face++ Request]. faceToken=" + faceToken + "; imageUrl=" + imageUrl);
 		}
 
 		String url = System.getProperty("facepp.compare.url");
@@ -140,24 +140,24 @@ public class FaceppClient {
 			responseHolder = new JsonHttpResponseHolder(statusCode, obj);
 
 			if (HttpStatus.SC_OK != responseHolder.getStatusCode()) {
-				log.error("[Face++ Response]. statusCode=" + statusCode + "; responseEntity="
+				LOG.error("[Face++ Response]. statusCode=" + statusCode + "; responseEntity="
 						+ entityStr);
 			} else {
-				if (log.isDebugEnabled()) {
-					log.debug("[Face++ Response]. statusCode=" + statusCode + "; responseEntity="
+				if (LOG.isDebugEnabled()) {
+					LOG.debug("[Face++ Response]. statusCode=" + statusCode + "; responseEntity="
 							+ entityStr);
 				}
 			}
 
 		} catch (Exception e) {
-			log.error("[Face++ FAIL]. cost " + (System.currentTimeMillis() - s) + " ms.", e);
+			LOG.error("[Face++ FAIL]. cost " + (System.currentTimeMillis() - s) + " ms.", e);
 			throw new ExamCloudRuntimeException(e);
 		} finally {
 			IOUtils.closeQuietly(response);
 		}
 
-		if (log.isDebugEnabled()) {
-			log.debug("[Face++]. faceToken=" + faceToken + "; imageUrl=" + imageUrl + "; cost "
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[Face++]. faceToken=" + faceToken + "; imageUrl=" + imageUrl + "; cost "
 					+ (System.currentTimeMillis() - s) + " ms.");
 		}
 
@@ -174,8 +174,8 @@ public class FaceppClient {
 	 */
 	public JsonHttpResponseHolder compareWithTokenAndBase64(String faceToken, String imageBase64) {
 
-		if (log.isDebugEnabled()) {
-			log.debug("[Face++ Request]. faceToken=" + faceToken + "; imageBase64=?");
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[Face++ Request]. faceToken=" + faceToken + "; imageBase64=?");
 		}
 
 		String url = System.getProperty("facepp.compare.url");
@@ -207,24 +207,24 @@ public class FaceppClient {
 			responseHolder = new JsonHttpResponseHolder(statusCode, obj);
 
 			if (HttpStatus.SC_OK != responseHolder.getStatusCode()) {
-				log.error("[Face++ Response]. statusCode=" + statusCode + "; responseEntity="
+				LOG.error("[Face++ Response]. statusCode=" + statusCode + "; responseEntity="
 						+ entityStr);
 			} else {
-				if (log.isDebugEnabled()) {
-					log.debug("[Face++ Response]. statusCode=" + statusCode + "; responseEntity="
+				if (LOG.isDebugEnabled()) {
+					LOG.debug("[Face++ Response]. statusCode=" + statusCode + "; responseEntity="
 							+ entityStr);
 				}
 			}
 
 		} catch (Exception e) {
-			log.error("[Face++ FAIL].  cost " + (System.currentTimeMillis() - s) + " ms.", e);
+			LOG.error("[Face++ FAIL].  cost " + (System.currentTimeMillis() - s) + " ms.", e);
 			throw new ExamCloudRuntimeException(e);
 		} finally {
 			IOUtils.closeQuietly(response);
 		}
 
-		if (log.isDebugEnabled()) {
-			log.debug("[Face++]. faceToken=" + faceToken + "; imageBase64=?; cost "
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[Face++]. faceToken=" + faceToken + "; imageBase64=?; cost "
 					+ (System.currentTimeMillis() - s) + " ms.");
 		}
 
@@ -241,8 +241,8 @@ public class FaceppClient {
 	 */
 	public JsonHttpResponseHolder compareWithImageUrl(String imageUrl1, String imageUrl2) {
 
-		if (log.isDebugEnabled()) {
-			log.debug("[Face++ Request]. imageUrl1=" + imageUrl1 + "; imageUrl2=" + imageUrl2);
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[Face++ Request]. imageUrl1=" + imageUrl1 + "; imageUrl2=" + imageUrl2);
 		}
 
 		String url = System.getProperty("facepp.compare.url");
@@ -274,24 +274,24 @@ public class FaceppClient {
 			responseHolder = new JsonHttpResponseHolder(statusCode, obj);
 
 			if (HttpStatus.SC_OK != responseHolder.getStatusCode()) {
-				log.error("[Face++ Response]. statusCode=" + statusCode + "; responseEntity="
+				LOG.error("[Face++ Response]. statusCode=" + statusCode + "; responseEntity="
 						+ entityStr);
 			} else {
-				if (log.isDebugEnabled()) {
-					log.debug("[Face++ Response]. statusCode=" + statusCode + "; responseEntity="
+				if (LOG.isDebugEnabled()) {
+					LOG.debug("[Face++ Response]. statusCode=" + statusCode + "; responseEntity="
 							+ entityStr);
 				}
 			}
 
 		} catch (Exception e) {
-			log.error("[Face++ FAIL]. cost " + (System.currentTimeMillis() - s) + " ms.", e);
+			LOG.error("[Face++ FAIL]. cost " + (System.currentTimeMillis() - s) + " ms.", e);
 			throw new ExamCloudRuntimeException(e);
 		} finally {
 			IOUtils.closeQuietly(response);
 		}
 
-		if (log.isDebugEnabled()) {
-			log.debug("[Face++]. image_url1=" + imageUrl1 + "; imageUrl2=" + imageUrl2 + "; cost "
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[Face++]. image_url1=" + imageUrl1 + "; imageUrl2=" + imageUrl2 + "; cost "
 					+ (System.currentTimeMillis() - s) + " ms.");
 		}
 
@@ -319,8 +319,8 @@ public class FaceppClient {
 	public JsonHttpResponseHolder compareWithTokenAndImageUrl(String faceToken, String imageUrl,
 			String backupImageUrl) throws StatusException {
 
-		if (log.isDebugEnabled()) {
-			log.debug("[Face++ Request]. faceToken=" + faceToken + "; imageUrl=" + imageUrl
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[Face++ Request]. faceToken=" + faceToken + "; imageUrl=" + imageUrl
 					+ "; backupImageUrl=" + backupImageUrl);
 		}
 
@@ -385,17 +385,17 @@ public class FaceppClient {
 				imageBase64 = Base64.encodeBase64String(byteArray);
 
 			} catch (StatusException e) {
-				log.error("fail to download image file. url=" + backupImageUrl, e);
+				LOG.error("fail to download image file. url=" + backupImageUrl, e);
 				throw e;
 			} catch (Exception e) {
-				log.error("fail to download image file. url=" + backupImageUrl, e);
+				LOG.error("fail to download image file. url=" + backupImageUrl, e);
 				throw new StatusException("803", "fail to download file. url=" + backupImageUrl, e);
 			} finally {
 				IOUtils.closeQuietly(response);
 			}
 
-			if (log.isDebugEnabled()) {
-				log.debug("download image file successfully; url=" + backupImageUrl + "; cost "
+			if (LOG.isDebugEnabled()) {
+				LOG.debug("download image file successfully; url=" + backupImageUrl + "; cost "
 						+ (System.currentTimeMillis() - s) + " ms.");
 			}
 

+ 3 - 1
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/filestorage/impl/AliyunFileStorageImpl.java

@@ -14,6 +14,8 @@ import org.apache.commons.codec.DecoderException;
 import org.apache.commons.codec.binary.Hex;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import java.io.*;
@@ -24,7 +26,7 @@ import java.util.Map;
 @Service(value = "aliyunFileStorage")
 public class AliyunFileStorageImpl implements FileStorage {
 
-    // private ExamCloudLog log = ExamCloudLogFactory.getLog(this.getClass());
+    private static final Logger LOG = LoggerFactory.getLogger(AliyunFileStorageImpl.class);
 
     // 文件最大大小(byte)
     private static int maxFileSize = 100 * 1024 * 1024;

+ 7 - 7
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/filestorage/impl/AliyunRefreshCdn.java

@@ -5,21 +5,21 @@
 
 package cn.com.qmth.examcloud.web.filestorage.impl;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import com.aliyuncs.DefaultAcsClient;
 import com.aliyuncs.IAcsClient;
 import com.aliyuncs.cdn.model.v20180510.RefreshObjectCachesRequest;
 import com.aliyuncs.cdn.model.v20180510.RefreshObjectCachesResponse;
 import com.aliyuncs.profile.DefaultProfile;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 阿里云 - 刷新文件的CDN缓存
  */
 public class AliyunRefreshCdn {
 
-    private static final ExamCloudLog log = ExamCloudLogFactory.getLog("INTERFACE_LOGGER");
+    private static final Logger LOG = LoggerFactory.getLogger(AliyunRefreshCdn.class);
 
     /**
      * 刷新文件的CDN缓存:
@@ -38,12 +38,12 @@ public class AliyunRefreshCdn {
         try {
             RefreshObjectCachesResponse response = client.getAcsResponse(request);
 
-            log.info("refreshCDN fileUrl = " + fileUrls);
-            if (log.isDebugEnabled()) {
-                log.debug(JsonUtil.toJson(response));
+            LOG.info("refreshCDN fileUrl = " + fileUrls);
+            if (LOG.isDebugEnabled()) {
+                LOG.debug(JsonUtil.toJson(response));
             }
         } catch (Exception e) {
-            log.error(e.getMessage(), e);
+            LOG.error(e.getMessage(), e);
         }
     }
 

+ 3 - 3
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/helpers/SequenceLockHelper.java

@@ -8,8 +8,6 @@ import org.assertj.core.util.Arrays;
 
 import com.google.common.collect.Lists;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.ThreadLocalUtil;
 import cn.com.qmth.examcloud.web.enums.HttpServletRequestAttribute;
 import cn.com.qmth.examcloud.web.exception.SequenceLockException;
@@ -17,6 +15,8 @@ import cn.com.qmth.examcloud.web.interceptor.SeqlockInterceptor;
 import cn.com.qmth.examcloud.web.redis.RedisClient;
 import cn.com.qmth.examcloud.web.support.ServletUtil;
 import cn.com.qmth.examcloud.web.support.SpringContextHolder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 并发顺序锁
@@ -27,7 +27,7 @@ import cn.com.qmth.examcloud.web.support.SpringContextHolder;
  */
 public class SequenceLockHelper {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(SequenceLockHelper.class);
+	private static final Logger LOG = LoggerFactory.getLogger(SequenceLockHelper.class);
 
 	private static final String LOCK_PREFIX = "$_LOCK_C:";
 

+ 9 - 13
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/interceptor/ApiFlowLimitedInterceptor.java

@@ -9,6 +9,8 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.lang.math.RandomUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.servlet.HandlerInterceptor;
 
@@ -16,8 +18,6 @@ import com.google.common.collect.Maps;
 import com.google.common.util.concurrent.RateLimiter;
 import com.googlecode.aviator.AviatorEvaluator;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.PropertiesUtil;
 import cn.com.qmth.examcloud.commons.util.Util;
 import cn.com.qmth.examcloud.web.actuator.ApiStatusInfo;
@@ -37,11 +37,7 @@ import cn.com.qmth.examcloud.web.support.StatusResponse;
  */
 public class ApiFlowLimitedInterceptor implements HandlerInterceptor {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory
-			.getLog(ApiFlowLimitedInterceptor.class);
-
-	private static final ExamCloudLog INTERFACE_LOG = ExamCloudLogFactory
-			.getLog("INTERFACE_LOGGER");
+	private static final Logger LOG = LoggerFactory.getLogger(ApiFlowLimitedInterceptor.class);
 
 	private static RateLimiter rateLimiter;
 
@@ -189,8 +185,8 @@ public class ApiFlowLimitedInterceptor implements HandlerInterceptor {
 		boolean acquired = rateLimiter.tryAcquire();
 		if (!acquired) {
 
-			if (INTERFACE_LOG.isErrorEnabled()) {
-				INTERFACE_LOG.error("[Limited]. G.");
+			if (LOG.isErrorEnabled()) {
+				LOG.error("[Limited]. G.");
 			}
 
 			response.setStatus(HttpStatus.SERVICE_UNAVAILABLE.value());
@@ -223,8 +219,8 @@ public class ApiFlowLimitedInterceptor implements HandlerInterceptor {
 			acquired = limiter.tryAcquire();
 			if (!acquired) {
 
-				if (INTERFACE_LOG.isErrorEnabled()) {
-					INTERFACE_LOG.error("[Limited]. S. mapping=" + apiInfo.getMapping());
+				if (LOG.isErrorEnabled()) {
+					LOG.error("[Limited]. S. mapping=" + apiInfo.getMapping());
 				}
 
 				response.setStatus(HttpStatus.SERVICE_UNAVAILABLE.value());
@@ -290,8 +286,8 @@ public class ApiFlowLimitedInterceptor implements HandlerInterceptor {
 				}
 			}
 
-			if (INTERFACE_LOG.isErrorEnabled()) {
-				INTERFACE_LOG.error("[Limited]. ER. mapping=" + apiInfo.getMapping());
+			if (LOG.isErrorEnabled()) {
+				LOG.error("[Limited]. ER. mapping=" + apiInfo.getMapping());
 			}
 
 			response.setStatus(HttpStatus.SERVICE_UNAVAILABLE.value());

+ 7 - 9
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/interceptor/FirstInterceptor.java

@@ -1,7 +1,5 @@
 package cn.com.qmth.examcloud.web.interceptor;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.commons.util.ThreadLocalUtil;
 import cn.com.qmth.examcloud.web.enums.HttpServletRequestAttribute;
@@ -9,6 +7,8 @@ import cn.com.qmth.examcloud.web.support.*;
 import com.google.common.collect.Maps;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.ThreadContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.HandlerInterceptor;
@@ -30,9 +30,7 @@ import java.util.Set;
  */
 public class FirstInterceptor implements HandlerInterceptor {
 
-    private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(FirstInterceptor.class);
-
-    private static final ExamCloudLog INTERFACE_LOG = ExamCloudLogFactory.getLog("INTERFACE_LOGGER");
+    private static final Logger LOG = LoggerFactory.getLogger(FirstInterceptor.class);
 
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
@@ -54,7 +52,7 @@ public class FirstInterceptor implements HandlerInterceptor {
 
         Set<String> headerNames = new HashSet<>(20);
 
-        if (INTERFACE_LOG.isDebugEnabled()) {
+        if (LOG.isDebugEnabled()) {
             Map<String, String> headers = Maps.newHashMap();
             Enumeration<String> e = request.getHeaderNames();
             while (e.hasMoreElements()) {
@@ -64,7 +62,7 @@ public class FirstInterceptor implements HandlerInterceptor {
                 headerNames.add(name);
             }
 
-            INTERFACE_LOG.debug(String.format("[FirstInterceptor][%s] - %s, headers = %s", method, path, JsonUtil.toJson(headers)));
+            LOG.debug(String.format("[FirstInterceptor][%s] - %s, headers = %s", method, path, JsonUtil.toJson(headers)));
         }
 
         if (path.equals("/error")) {
@@ -87,12 +85,12 @@ public class FirstInterceptor implements HandlerInterceptor {
             String mapping = apiInfo.getMapping();
             request.setAttribute(HttpServletRequestAttribute.$_API_INFO.name(), apiInfo);
 
-            INTERFACE_LOG.debug("[FirstInterceptor][mapping] ==> " + mapping);
+            LOG.debug("[FirstInterceptor][mapping] ==> " + mapping);
             request.setAttribute(HttpServletRequestAttribute.$_MAPPING.name(), mapping);
         } else {
             String mapping = StringUtils.join("_[", path, "][", method, "]");
 
-            INTERFACE_LOG.debug("[FirstInterceptor][mapping] --> " + mapping);
+            LOG.debug("[FirstInterceptor][mapping] --> " + mapping);
             request.setAttribute(HttpServletRequestAttribute.$_MAPPING.name(), mapping);
         }
 

+ 3 - 3
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/interceptor/SeqlockInterceptor.java

@@ -6,14 +6,14 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.ModelAndView;
 
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.ThreadLocalUtil;
 import cn.com.qmth.examcloud.web.enums.HttpServletRequestAttribute;
 import cn.com.qmth.examcloud.web.redis.RedisClient;
@@ -29,7 +29,7 @@ import cn.com.qmth.examcloud.web.support.StatusResponse;
  */
 public class SeqlockInterceptor implements HandlerInterceptor {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(SeqlockInterceptor.class);
+	private static final Logger LOG = LoggerFactory.getLogger(SeqlockInterceptor.class);
 
 	/**
 	 * redis client

+ 3 - 3
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/mongodb/MongodbDetector.java

@@ -5,6 +5,8 @@ import java.net.Inet4Address;
 import java.net.InetAddress;
 import java.util.Map;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.core.annotation.Order;
@@ -12,8 +14,6 @@ import org.springframework.stereotype.Component;
 
 import com.google.common.collect.Maps;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.DateUtil;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 import cn.com.qmth.examcloud.web.support.SpringContextHolder;
@@ -29,7 +29,7 @@ import cn.com.qmth.examcloud.web.support.SpringContextHolder;
 @Order(99)
 public class MongodbDetector implements ApplicationRunner {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(MongodbDetector.class);
+	private static final Logger LOG = LoggerFactory.getLogger(MongodbDetector.class);
 
 	public void start() {
 		String appName = PropertyHolder.getString("spring.application.name");

+ 3 - 4
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/redis/CustomRedisConfiguration.java

@@ -1,5 +1,7 @@
 package cn.com.qmth.examcloud.web.redis;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -13,13 +15,10 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.PropertyAccessor;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-
 @Configuration
 public class CustomRedisConfiguration {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(CustomRedisConfiguration.class);
+	private static final Logger LOG = LoggerFactory.getLogger(CustomRedisConfiguration.class);
 
 	@Bean
 	public RedisTemplate<String, Object> redisTemplate(

+ 5 - 5
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/redis/SimpleRedisClient.java

@@ -1,8 +1,8 @@
 package cn.com.qmth.examcloud.web.redis;
 
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.data.redis.core.RedisTemplate;
 
 import java.util.concurrent.TimeUnit;
@@ -16,7 +16,7 @@ import java.util.concurrent.TimeUnit;
  */
 public final class SimpleRedisClient implements RedisClient {
 
-    private static final ExamCloudLog REDIS_LOG = ExamCloudLogFactory.getLog("REDIS_LOGGER");
+    private static final Logger LOG = LoggerFactory.getLogger(SimpleRedisClient.class);
 
     private RedisTemplate<String, Object> redisTemplate;
 
@@ -34,10 +34,10 @@ public final class SimpleRedisClient implements RedisClient {
     }
 
     private void afterMethod(String content, long startTimeMillis) {
-        if (REDIS_LOG.isDebugEnabled()) {
+        if (LOG.isDebugEnabled()) {
             String msg = String.format("[SimpleRedisClient] %s, cost %dms",
                     content, System.currentTimeMillis() - startTimeMillis);
-            REDIS_LOG.debug(msg);
+            LOG.debug(msg);
         }
     }
 

+ 7 - 7
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/security/DataRuleInterceptor.java

@@ -6,11 +6,11 @@ import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.api.commons.security.bean.UserDataRule;
 import cn.com.qmth.examcloud.api.commons.security.bean.UserType;
 import cn.com.qmth.examcloud.api.commons.security.enums.RoleMeta;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 import cn.com.qmth.examcloud.web.enums.HttpServletRequestAttribute;
 import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
@@ -23,7 +23,7 @@ import java.util.stream.Collectors;
 
 public class DataRuleInterceptor extends HandlerInterceptorAdapter {
 
-    private final static ExamCloudLog log = ExamCloudLogFactory.getLog("INTERFACE_LOGGER");
+    private static final Logger LOG = LoggerFactory.getLogger(DataRuleInterceptor.class);
 
     private ResourceManager resourceManager;
 
@@ -47,7 +47,7 @@ public class DataRuleInterceptor extends HandlerInterceptorAdapter {
             boolean isEnable = PropertyHolder.getBoolean("examcloud.data.rule.enable", false);
             if (!isEnable) {
                 // 未启用数据权限
-                log.info("[DataRuleInterceptor] examcloud.data.rule.enable = false");
+                LOG.info("[DataRuleInterceptor] examcloud.data.rule.enable = false");
                 return true;
             }
 
@@ -69,14 +69,14 @@ public class DataRuleInterceptor extends HandlerInterceptorAdapter {
                     userDataRule.setRefIds(new HashSet<>());
                 } else {
                     userDataRule = resourceManager.loadUserDataRule(accessUser.getUserId(), dataRuleType);
-                    log.info(String.format("[DataRuleInterceptor] userId = %s, type = %s, %s", accessUser.getUserId(), dataRuleType, userDataRule));
+                    LOG.info(String.format("[DataRuleInterceptor] userId = %s, type = %s, %s", accessUser.getUserId(), dataRuleType, userDataRule));
                 }
 
                 String attributeName = HttpServletRequestAttribute.$_USER_DATA_RULE.name() + "@" + dataRuleType.name();
                 request.setAttribute(attributeName, userDataRule);
             }
         } catch (Exception e) {
-            log.error("[DataRuleInterceptor] " + e.getMessage(), e);
+            LOG.error("[DataRuleInterceptor] " + e.getMessage(), e);
         }
 
         return true;
@@ -94,7 +94,7 @@ public class DataRuleInterceptor extends HandlerInterceptorAdapter {
         Set<String> roleCodes = roleList.stream().map(e -> e.getRoleCode()).collect(Collectors.toSet());
         for (RoleMeta role : roles) {
             if (roleCodes.contains(role.name())) {
-                log.info(String.format("[DataRuleInterceptor] userId = %s, role = %s", accessUser.getUserId(), roleCodes));
+                LOG.info(String.format("[DataRuleInterceptor] userId = %s, role = %s", accessUser.getUserId(), roleCodes));
                 return true;
             }
         }

+ 3 - 7
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/security/RequestPermissionInterceptor.java

@@ -5,6 +5,8 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.ThreadContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.ModelAndView;
@@ -12,8 +14,6 @@ import org.springframework.web.servlet.ModelAndView;
 import cn.com.qmth.examcloud.api.commons.CloudService;
 import cn.com.qmth.examcloud.api.commons.EnterpriseService;
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.web.enums.HttpServletRequestAttribute;
 import cn.com.qmth.examcloud.web.redis.RedisClient;
 import cn.com.qmth.examcloud.web.support.ApiInfo;
@@ -29,11 +29,7 @@ import cn.com.qmth.examcloud.web.support.StatusResponse;
  */
 public class RequestPermissionInterceptor implements HandlerInterceptor {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory
-			.getLog(RequestPermissionInterceptor.class);
-
-	protected static final ExamCloudLog INTERFACE_LOG = ExamCloudLogFactory
-			.getLog("INTERFACE_LOGGER");
+	private static final Logger LOG = LoggerFactory.getLogger(RequestPermissionInterceptor.class);
 
 	private ResourceManager resourceManager;
 

+ 3 - 3
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/security/RpcInterceptor.java

@@ -5,14 +5,14 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.ThreadContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.ModelAndView;
 
 import cn.com.qmth.examcloud.api.commons.CloudService;
 import cn.com.qmth.examcloud.api.commons.security.bean.AccessApp;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.ByteUtil;
 import cn.com.qmth.examcloud.commons.util.SHA256;
 import cn.com.qmth.examcloud.commons.util.StringUtil;
@@ -30,7 +30,7 @@ import cn.com.qmth.examcloud.web.support.StatusResponse;
  */
 public final class RpcInterceptor implements HandlerInterceptor {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(RpcInterceptor.class);
+	private static final Logger LOG = LoggerFactory.getLogger(RpcInterceptor.class);
 
 	private ResourceManager resourceManager;
 

+ 16 - 18
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/ControllerAspect.java

@@ -1,8 +1,6 @@
 package cn.com.qmth.examcloud.web.support;
 
 import cn.com.qmth.examcloud.api.commons.exchange.BaseResponse;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonMapper;
 import cn.com.qmth.examcloud.commons.util.ObjectUtil;
 import cn.com.qmth.examcloud.commons.util.ThreadLocalUtil;
@@ -15,6 +13,8 @@ import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Pointcut;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
@@ -36,9 +36,7 @@ import java.util.Map;
 @Aspect
 public class ControllerAspect {
 
-    private static final ExamCloudLog DEBUG_LOG = ExamCloudLogFactory.getLog(ControllerAspect.class);
-
-    private static final ExamCloudLog INTERFACE_LOG = ExamCloudLogFactory.getLog("INTERFACE_LOGGER");
+    private static final Logger LOG = LoggerFactory.getLogger(ControllerAspect.class);
 
     @Autowired(required = false)
     HttpMethodProcessor httpMethodProcessor;
@@ -54,7 +52,7 @@ public class ControllerAspect {
      */
     public ControllerAspect() {
         super();
-        DEBUG_LOG.info("ControllerAspect init...");
+        LOG.info("ControllerAspect init...");
     }
 
     private static String[] excludeFields = new String[]{"password", ".*Password"};
@@ -90,7 +88,7 @@ public class ControllerAspect {
                 return joinPoint.proceed();
             }
         } catch (Throwable e) {
-            INTERFACE_LOG.error(e.getMessage());
+            LOG.error(e.getMessage());
             throw new RuntimeException(e);
         }
 
@@ -98,7 +96,7 @@ public class ControllerAspect {
         String method = request.getMethod();
         Object[] args = joinPoint.getArgs();
 
-        if (INTERFACE_LOG.isInfoEnabled()) {
+        if (LOG.isInfoEnabled()) {
             StringBuilder params = new StringBuilder();
 
             // api method params
@@ -134,7 +132,7 @@ public class ControllerAspect {
                 }
             }
 
-            INTERFACE_LOG.info(String.format("[ControllerAspect][request][%s] - %s %s", method, path, params.toString()));
+            LOG.info(String.format("[ControllerAspect][request][%s] - %s %s", method, path, params.toString()));
         }
 
         Object ret;
@@ -154,11 +152,11 @@ public class ControllerAspect {
                 try {
                     httpMethodProcessor.onException(request, args, e);
                 } catch (Exception ex) {
-                    INTERFACE_LOG.error("[ControllerAspect] processor1 - " + ex.getMessage(), ex);
+                    LOG.error("[ControllerAspect] processor1 - " + ex.getMessage(), ex);
                 }
             }
 
-            INTERFACE_LOG.error(String.format("[ControllerAspect][execute fail][%s] - %s, cost %sms, err is %s"
+            LOG.error(String.format("[ControllerAspect][execute fail][%s] - %s, cost %sms, err is %s"
                     , method, path, System.currentTimeMillis() - startTime, e.getMessage()));
             throw new RuntimeException(e);
         }
@@ -167,7 +165,7 @@ public class ControllerAspect {
             try {
                 httpMethodProcessor.onSuccess(request, args, ret);
             } catch (Exception ex) {
-                INTERFACE_LOG.error("[ControllerAspect] processor2 - " + ex.getMessage(), ex);
+                LOG.error("[ControllerAspect] processor2 - " + ex.getMessage(), ex);
             }
         }
 
@@ -176,19 +174,19 @@ public class ControllerAspect {
             baseResponse.setCost(System.currentTimeMillis() - startTime);
         }
 
-        if (INTERFACE_LOG.isDebugEnabled() && logProperties.isNormalResponseLogEnable()) {
+        if (LOG.isDebugEnabled() && logProperties.isNormalResponseLogEnable()) {
             if (ret == null) {
-                INTERFACE_LOG.debug("[ControllerAspect] status = ok, responseMsg = void");
+                LOG.debug("[ControllerAspect] status = ok, responseMsg = void");
             } else if (ret instanceof ResponseEntity) {
                 ResponseEntity<?> re = (ResponseEntity<?>) ret;
                 Object body = re.getBody();
 
                 String content = this.parseContent(body);
-                INTERFACE_LOG.debug(String.format("[ControllerAspect] status = %s, responseMsg = %s",
+                LOG.debug(String.format("[ControllerAspect] status = %s, responseMsg = %s",
                         re.getStatusCodeValue(), content));
             } else {
                 String content = this.parseContent(ret);
-                INTERFACE_LOG.debug(String.format("[ControllerAspect] status = ok, responseMsg = %s", content));
+                LOG.debug(String.format("[ControllerAspect] status = ok, responseMsg = %s", content));
             }
         }
 
@@ -196,7 +194,7 @@ public class ControllerAspect {
         response.setHeader("Trace-Id", ThreadLocalUtil.getTraceId());
         response.setHeader("cost", String.valueOf(System.currentTimeMillis() - startTime));
 
-        INTERFACE_LOG.info(String.format("[ControllerAspect][response][%s] - %s, cost %sms", method, path, System.currentTimeMillis() - startTime));
+        LOG.info(String.format("[ControllerAspect][response][%s] - %s, cost %sms", method, path, System.currentTimeMillis() - startTime));
         return ret;
     }
 
@@ -235,7 +233,7 @@ public class ControllerAspect {
             // content to json
             content = new JsonMapper().toJson(obj);
         } catch (Exception e) {
-            INTERFACE_LOG.warn("[ControllerAspect] parseContent " + e.getMessage());
+            LOG.warn("[ControllerAspect] parseContent " + e.getMessage());
         }
 
         if (content == null) {

+ 3 - 7
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/ControllerSupport.java

@@ -7,8 +7,6 @@ import cn.com.qmth.examcloud.api.commons.security.bean.UserDataRule;
 import cn.com.qmth.examcloud.api.commons.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.ObjectUtil;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 import cn.com.qmth.examcloud.web.enums.HttpServletRequestAttribute;
@@ -16,6 +14,8 @@ import com.google.common.collect.Lists;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
@@ -37,11 +37,7 @@ import java.util.stream.Collectors;
  * @date 2018年4月4日
  */
 public abstract class ControllerSupport {
-
-    /**
-     * controller 统一业务日志对象
-     */
-    protected ExamCloudLog log = ExamCloudLogFactory.getLog(this.getClass());
+    protected static final Logger LOGGER = LoggerFactory.getLogger(ControllerSupport.class);
 
     protected String getIp(HttpServletRequest request) {
         return IpUtil.getRemoteIp(request);

+ 7 - 7
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/CustomExceptionHandler.java

@@ -1,14 +1,14 @@
 package cn.com.qmth.examcloud.web.support;
 
 import cn.com.qmth.examcloud.commons.exception.StatusException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonMapper;
 import cn.com.qmth.examcloud.web.cloud.AppSelfHolder;
 import cn.com.qmth.examcloud.web.enums.HttpServletRequestAttribute;
 import cn.com.qmth.examcloud.web.exception.ApiFlowLimitedException;
 import cn.com.qmth.examcloud.web.exception.SequenceLockException;
 import cn.com.qmth.examcloud.web.jpa.DataIntegrityViolationTransverter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -42,7 +42,7 @@ public class CustomExceptionHandler {
     /**
      * 接口日志
      */
-    private static final ExamCloudLog INTERFACE_LOG = ExamCloudLogFactory.getLog("INTERFACE_LOGGER");
+    private static final Logger LOG = LoggerFactory.getLogger(CustomExceptionHandler.class);
 
     /**
      * 异常处理
@@ -237,12 +237,12 @@ public class CustomExceptionHandler {
         String msg = String.format("[CustomExceptionHandler] status = %s, responseMsg = %s",
                 httpStatus.value(), new JsonMapper().toJson(body));
         if (printStackTrace) {
-            INTERFACE_LOG.error(msg, err);
+            LOG.error(msg, err);
         } else {
-            INTERFACE_LOG.error(msg + ", err is " + err.getMessage());
+            LOG.error(msg + ", err is " + err.getMessage());
 
-            if (INTERFACE_LOG.isDebugEnabled()) {
-                INTERFACE_LOG.debug(err.getMessage(), err);
+            if (LOG.isDebugEnabled()) {
+                LOG.debug(err.getMessage(), err);
             }
         }
 

+ 3 - 3
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/ExamCloudController.java

@@ -4,6 +4,8 @@ import java.util.Collections;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.lang3.RandomUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
@@ -14,8 +16,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.DateUtil;
 import cn.com.qmth.examcloud.commons.util.Util;
 
@@ -29,7 +29,7 @@ import cn.com.qmth.examcloud.commons.util.Util;
 @RestController
 public class ExamCloudController {
 
-	protected static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(ExamCloudController.class);
+	private static final Logger LOG = LoggerFactory.getLogger(ExamCloudController.class);
 
 	@Naked
 	@RequestMapping(value = {"/", ""}, method = RequestMethod.GET)

+ 0 - 2
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/IpUtil.java

@@ -1,7 +1,5 @@
 package cn.com.qmth.examcloud.web.support;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import org.apache.commons.lang3.StringUtils;
 
 import javax.servlet.http.HttpServletRequest;

+ 3 - 3
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/MockController.java

@@ -5,6 +5,8 @@ import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
@@ -18,8 +20,6 @@ import org.springframework.web.bind.annotation.RestController;
 import com.google.common.collect.Maps;
 
 import cn.com.qmth.examcloud.commons.exception.StatusException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.FreeMarkerUtil;
 import cn.com.qmth.examcloud.commons.util.ResourceLoader;
 
@@ -34,7 +34,7 @@ import cn.com.qmth.examcloud.commons.util.ResourceLoader;
 @RequestMapping("mock")
 public class MockController {
 
-	protected static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(MockController.class);
+	private static final Logger LOG = LoggerFactory.getLogger(MockController.class);
 
 	@Naked
 	@RequestMapping(value = {"/{templateId}/**"}, method = RequestMethod.GET)

+ 6 - 6
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/support/ServletUtil.java

@@ -1,9 +1,9 @@
 package cn.com.qmth.examcloud.web.support;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
@@ -24,7 +24,7 @@ public class ServletUtil {
     /**
      * 接口日志
      */
-    protected static final ExamCloudLog INTERFACE_LOG = ExamCloudLogFactory.getLog("INTERFACE_LOGGER");
+    private static final Logger LOG = LoggerFactory.getLogger(ServletUtil.class);
 
     /**
      * 获取request对象
@@ -65,11 +65,11 @@ public class ServletUtil {
             }
             writer.write(json);
 
-            if (INTERFACE_LOG.isDebugEnabled()) {
-                INTERFACE_LOG.debug("[ServletUtil] responseMsg = " + json);
+            if (LOG.isDebugEnabled()) {
+                LOG.debug("[ServletUtil] responseMsg = " + json);
             }
         } catch (IOException e) {
-            INTERFACE_LOG.error("[ServletUtil] returnJson fail... " + e.getMessage(), e);
+            LOG.error("[ServletUtil] returnJson fail... " + e.getMessage(), e);
         } finally {
             IOUtils.closeQuietly(writer);
         }

+ 12 - 14
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/task/AbstractTask.java

@@ -1,9 +1,9 @@
 package cn.com.qmth.examcloud.web.task;
 
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 任务调度抽象类
@@ -14,9 +14,7 @@ import cn.com.qmth.examcloud.commons.util.JsonUtil;
  */
 public abstract class AbstractTask implements Task {
 
-	protected ExamCloudLog taskLog = ExamCloudLogFactory.getLog("TASK_LOGGER");
-
-	protected ExamCloudLog debugLog = ExamCloudLogFactory.getLog(this.getClass());
+	protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractTask.class);
 
 	public abstract TaskTracker getTaskTracker();
 
@@ -27,10 +25,10 @@ public abstract class AbstractTask implements Task {
 		try {
 			getTaskTracker().start(scheduleJob, traceId);
 		} catch (Exception e) {
-			taskLog.error("[TASK TRACKER]. start", e);
+			LOGGER.error("[TASK TRACKER]. start", e);
 		}
-		if (taskLog.isDebugEnabled()) {
-			taskLog.debug("[TASK IN]. detail: " + JsonUtil.toJson(scheduleJob));
+		if (LOGGER.isDebugEnabled()) {
+			LOGGER.debug("[TASK IN]. detail: " + JsonUtil.toJson(scheduleJob));
 		}
 		try {
 			run(scheduleJob);
@@ -38,20 +36,20 @@ public abstract class AbstractTask implements Task {
 			try {
 				getTaskTracker().whenException(scheduleJob, traceId, e);
 			} catch (Exception ex) {
-				taskLog.error("[TASK TRACKER]. whenException", ex);
+				LOGGER.error("[TASK TRACKER]. whenException", ex);
 			}
-			if (taskLog.isErrorEnabled()) {
-				taskLog.error("[TASK EXCEPTION]. detail: " + JsonUtil.toJson(scheduleJob), e);
+			if (LOGGER.isErrorEnabled()) {
+				LOGGER.error("[TASK EXCEPTION]. detail: " + JsonUtil.toJson(scheduleJob), e);
 			}
 			throw new ExamCloudRuntimeException(e);
 		}
 		try {
 			getTaskTracker().onEnd(scheduleJob, traceId);
 		} catch (Exception e) {
-			taskLog.error("[TASK TRACKER]. onEnd", e);
+			LOGGER.error("[TASK TRACKER]. onEnd", e);
 		}
-		if (taskLog.isDebugEnabled()) {
-			taskLog.debug("[TASK OUT]. detail: " + JsonUtil.toJson(scheduleJob));
+		if (LOGGER.isDebugEnabled()) {
+			LOGGER.debug("[TASK OUT]. detail: " + JsonUtil.toJson(scheduleJob));
 		}
 
 	}

+ 7 - 7
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/task/DistributionJob.java

@@ -5,11 +5,11 @@ import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.commons.util.ThreadLocalUtil;
 import cn.com.qmth.examcloud.web.support.SpringContextHolder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 并行任务分发器
@@ -19,7 +19,7 @@ import cn.com.qmth.examcloud.web.support.SpringContextHolder;
  * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
  */
 public class DistributionJob implements Job {
-	private static final ExamCloudLog TASK_LOG = ExamCloudLogFactory.getLog("TASK_LOGGER");
+	private static final Logger LOG = LoggerFactory.getLogger(DistributionJob.class);
 
 	@Override
 	public void execute(JobExecutionContext context) throws JobExecutionException {
@@ -30,16 +30,16 @@ public class DistributionJob implements Job {
 		try {
 			scheduleJob = (ScheduleJob) context.getMergedJobDataMap().get("scheduleJob");
 
-			if (TASK_LOG.isDebugEnabled()) {
-				TASK_LOG.debug("distribute job. job detail :" + JsonUtil.toJson(scheduleJob));
+			if (LOG.isDebugEnabled()) {
+				LOG.debug("distribute job. job detail :" + JsonUtil.toJson(scheduleJob));
 			}
 			Object bean = SpringContextHolder.getBean(scheduleJob.getSpringBean());
 
 			Task task = (Task) bean;
 			task.execute(scheduleJob, traceId);
 		} catch (Exception e) {
-			if (TASK_LOG.isErrorEnabled()) {
-				TASK_LOG.error(
+			if (LOG.isErrorEnabled()) {
+				LOG.error(
 						"fail to distribute job. job detail :" + JsonUtil.toJson(scheduleJob), e);
 			}
 			throw new JobExecutionException(e);

+ 15 - 15
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/task/QuartzManager.java

@@ -17,13 +17,13 @@ import org.quartz.Trigger;
 import org.quartz.TriggerBuilder;
 import org.quartz.TriggerKey;
 import org.quartz.impl.matchers.GroupMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.quartz.SchedulerFactoryBean;
 import org.springframework.stereotype.Component;
 
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
 
 /**
@@ -35,7 +35,7 @@ import cn.com.qmth.examcloud.commons.util.JsonUtil;
  */
 @Component
 public class QuartzManager {
-	private static final ExamCloudLog TASK_LOG = ExamCloudLogFactory.getLog("TASK_LOGGER");
+	private static final Logger LOG = LoggerFactory.getLogger(QuartzManager.class);
 
 	@Autowired
 	private SchedulerFactoryBean schedulerFactoryBean;
@@ -47,8 +47,8 @@ public class QuartzManager {
 	 * @param job
 	 */
 	public void addJob(ScheduleJob job) {
-		if (TASK_LOG.isDebugEnabled()) {
-			TASK_LOG.debug("add a job. job detail: " + JsonUtil.toJson(job));
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("add a job. job detail: " + JsonUtil.toJson(job));
 		}
 
 		try {
@@ -84,12 +84,12 @@ public class QuartzManager {
 				scheduler.rescheduleJob(triggerKey, trigger);
 			}
 		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to add a job. job detail: " + JsonUtil.toJson(job), e);
+			LOG.error("Fail to add a job. job detail: " + JsonUtil.toJson(job), e);
 			throw new ExamCloudRuntimeException(e);
 		}
 
-		if (TASK_LOG.isDebugEnabled()) {
-			TASK_LOG.debug("add a job successfully. job detail: " + JsonUtil.toJson(job));
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("add a job successfully. job detail: " + JsonUtil.toJson(job));
 		}
 	}
 
@@ -123,7 +123,7 @@ public class QuartzManager {
 			}
 			return jobList;
 		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to get all jobs.", e);
+			LOG.error("Fail to get all jobs.", e);
 			throw new ExamCloudRuntimeException(e);
 		}
 	}
@@ -157,7 +157,7 @@ public class QuartzManager {
 			}
 			return jobList;
 		} catch (Exception e) {
-			TASK_LOG.error("Fail to get running jobs.", e);
+			LOG.error("Fail to get running jobs.", e);
 			throw new ExamCloudRuntimeException(e);
 		}
 	}
@@ -174,7 +174,7 @@ public class QuartzManager {
 			JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup());
 			scheduler.pauseJob(jobKey);
 		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to pause Job. job detail: " + JsonUtil.toJson(scheduleJob), e);
+			LOG.error("Fail to pause Job. job detail: " + JsonUtil.toJson(scheduleJob), e);
 			throw new ExamCloudRuntimeException(e);
 		}
 	}
@@ -191,7 +191,7 @@ public class QuartzManager {
 			JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup());
 			scheduler.resumeJob(jobKey);
 		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to resume job. job detail: " + JsonUtil.toJson(scheduleJob), e);
+			LOG.error("Fail to resume job. job detail: " + JsonUtil.toJson(scheduleJob), e);
 			throw new ExamCloudRuntimeException(e);
 		}
 	}
@@ -208,7 +208,7 @@ public class QuartzManager {
 			JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup());
 			scheduler.deleteJob(jobKey);
 		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to delete job. job detail: " + JsonUtil.toJson(scheduleJob), e);
+			LOG.error("Fail to delete job. job detail: " + JsonUtil.toJson(scheduleJob), e);
 			throw new ExamCloudRuntimeException(e);
 		}
 
@@ -226,7 +226,7 @@ public class QuartzManager {
 			JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup());
 			scheduler.triggerJob(jobKey);
 		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to run job. job detail: " + JsonUtil.toJson(scheduleJob), e);
+			LOG.error("Fail to run job. job detail: " + JsonUtil.toJson(scheduleJob), e);
 			throw new ExamCloudRuntimeException(e);
 		}
 	}
@@ -254,7 +254,7 @@ public class QuartzManager {
 
 			scheduler.rescheduleJob(triggerKey, trigger);
 		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to update job cron expression. job detail :"
+			LOG.error("Fail to update job cron expression. job detail :"
 					+ JsonUtil.toJson(scheduleJob), e);
 			throw new ExamCloudRuntimeException(e);
 		}

+ 10 - 10
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/upyun/UpYunClient.java

@@ -40,11 +40,11 @@ import com.google.common.collect.Maps;
 
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.commons.util.MD5;
 import cn.com.qmth.examcloud.web.filestorage.YunHttpRequest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * upyun client
@@ -55,7 +55,7 @@ import cn.com.qmth.examcloud.web.filestorage.YunHttpRequest;
  */
 public class UpYunClient {
 
-	protected ExamCloudLog log = ExamCloudLogFactory.getLog(this.getClass());
+	private static final Logger LOG = LoggerFactory.getLogger(UpYunClient.class);
 
 	/**
 	 * 空间名
@@ -253,7 +253,7 @@ public class UpYunClient {
 		try {
 			return head+URLEncoder.encode(filename, "utf-8");
 		} catch (UnsupportedEncodingException e) {
-		    log.error("编码失败", e);
+		    LOG.error("编码失败", e);
 		}
 		return filePath;
 	}
@@ -297,7 +297,7 @@ public class UpYunClient {
 			int statusCode = response.getStatusLine().getStatusCode();
 
 			if (HttpStatus.SC_OK != statusCode) {
-				log.error("[upyun error] " + EntityUtils.toString(response.getEntity(), "UTF-8"));
+				LOG.error("[upyun error] " + EntityUtils.toString(response.getEntity(), "UTF-8"));
 				throw new StatusException("100001", "[upyun]. fail to write file");
 			}
 		} catch (StatusException e) {
@@ -310,8 +310,8 @@ public class UpYunClient {
 			// httpPut.releaseConnection();
 		}
 
-		if (log.isDebugEnabled()) {
-			log.debug("[upyun]. write file. path=" + path + "; cost "
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[upyun]. write file. path=" + path + "; cost "
 					+ (System.currentTimeMillis() - s) + " ms.");
 		}
 
@@ -345,7 +345,7 @@ public class UpYunClient {
 			int statusCode = response.getStatusLine().getStatusCode();
 
 			if (HttpStatus.SC_OK != statusCode) {
-				log.error("[upyun error] " + EntityUtils.toString(response.getEntity(), "UTF-8"));
+				LOG.error("[upyun error] " + EntityUtils.toString(response.getEntity(), "UTF-8"));
 				throw new StatusException("100002", "[upyun]. fail to delete file");
 			}
 		} catch (StatusException e) {
@@ -357,8 +357,8 @@ public class UpYunClient {
 			// httpDelete.releaseConnection();
 		}
 
-		if (log.isDebugEnabled()) {
-			log.debug("[upyun]. delete file. path=" + path + "; cost "
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("[upyun]. delete file. path=" + path + "; cost "
 					+ (System.currentTimeMillis() - s) + " ms.");
 		}
 

+ 3 - 3
examcloud-web/src/main/java/cn/com/qmth/examcloud/web/upyun/UpyunServiceImpl.java

@@ -3,10 +3,10 @@ package cn.com.qmth.examcloud.web.upyun;
 import java.io.File;
 import java.io.InputStream;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.FreeMarkerUtil;
 import cn.com.qmth.examcloud.web.filestorage.YunHttpRequest;
 
@@ -20,7 +20,7 @@ import cn.com.qmth.examcloud.web.filestorage.YunHttpRequest;
 @Service
 public class UpyunServiceImpl implements UpyunService {
 
-	protected ExamCloudLog log = ExamCloudLogFactory.getLog(this.getClass());
+	private static final Logger LOG = LoggerFactory.getLogger(UpyunServiceImpl.class);
 
 	@Override
 	public UpYunPathInfo writeFile(String siteId, UpyunPathEnvironmentInfo env, InputStream in,