diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/aspect/LogAspect.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/aspect/LogAspect.java
new file mode 100644
index 00000000..2ce344c3
--- /dev/null
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/aspect/LogAspect.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2019-2020 Zheng Jie
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.nl.common.domain.aspect;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
+import io.netty.util.internal.ThrowableUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.nl.common.utils.*;
+import org.nl.config.lucene.LuceneAppender;
+import org.slf4j.MDC;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
+import java.lang.reflect.Parameter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Zheng Jie
+ * @date 2018-11-24
+ */
+@Component
+@Aspect
+@Slf4j
+public class LogAspect {
+
+
+
+ /**
+ * 配置环绕通知,使用在方法logPointcut()上注册的切入点
+ *
+ * @param joinPoint join point for advice
+ */
+ @Around("@annotation(logInfo)")
+ public Object logAround(ProceedingJoinPoint joinPoint,org.nl.common.anno.Log logInfo) throws Throwable {
+
+ MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+ Method method = signature.getMethod();
+ String params = getParameter(method, joinPoint.getArgs());
+ HttpServletRequest request = RequestHolder.getHttpServletRequest();
+ String url = request.getRequestURI();
+ String requestIp = IPUtil.getIp(request);
+ MDC.put("requestMethod",url);
+ MDC.put("requestIp", requestIp);
+ MDC.put("requestTime", DateUtil.now());
+ LuceneAppender.traceIdTL.set(BaseCode.intToChars(IdUtil.getLongId()));
+ Object result = null;
+ long comming = System.currentTimeMillis();
+ try {
+ log.info("[--request--][请求接口:{}][请求参数:{}]",url,params);
+ result = joinPoint.proceed();
+// //是否把日志存到日志表
+// if (logInfo.isAddLogTable()) {
+// Log log = new Log("INFO", System.currentTimeMillis() - comming);
+// logService.save(getUsername(), StringUtils.getBrowser(request), requestIp, joinPoint, log);
+// }
+ }catch (Exception ex){
+ StringBuffer errorStack = new StringBuffer();
+ errorStack.append("
【异常堆栈:");
+ String errorMsg = ex.getMessage();
+ int x = 0;
+ StackTraceElement[] stackTrace = ex.getStackTrace();
+ if (stackTrace!=null && stackTrace.length>0){
+ for (StackTraceElement stack : stackTrace) {
+ x++;errorStack.append(stack.toString().replaceAll("<",">")).append("
");
+ if (x>10){ break; }
+ }
+ }
+ log.error("[-requestError-][请求接口:{}]【异常信息:{}】[请求参数:{}] {}", url,errorMsg,params, errorStack.append("】").toString());
+ throw ex;
+ }finally {
+ log.info("[--response--][请求接口:{} 执行结束][耗时:{}s]",url,(System.currentTimeMillis() - comming)/1000);
+ MDC.clear();
+ LuceneAppender.traceIdTL.remove();
+ }
+ return result;
+ }
+
+ /**
+ * 根据方法和传入的参数获取请求参数
+ */
+ private String getParameter(Method method, Object[] args) {
+ List