diff --git a/bocloud.sms.booter/src/main/java/com/bocloud/sms/booter/controller/LoginController.java b/bocloud.sms.booter/src/main/java/com/bocloud/sms/booter/controller/LoginController.java
index 05392de..607daa0 100644
--- a/bocloud.sms.booter/src/main/java/com/bocloud/sms/booter/controller/LoginController.java
+++ b/bocloud.sms.booter/src/main/java/com/bocloud/sms/booter/controller/LoginController.java
@@ -63,65 +63,70 @@ public class LoginController {
     @PostMapping("/users/login")
     public GeneralResult<Map<String, Object>> userLogin(@RequestBody LoginModel loginModel,
                                                         HttpServletRequest request) {
-        log.info("开始执行登录请求");
-        long start;
-        String account = loginModel.getAccount();
-        String password = loginModel.getPassword();
-        log.info("开始调用UserService");
-        GeneralResult<Map<String, Object>> loginResult = userService
-                .login(account, password, request.getSession().getId(), IpTool.getIP(request), loginModel.getIsManager());
-        log.info("请求方ip地址trx:" + trxService.getRequestIpAddress(request));
-        log.info("请求方ip地址:" + IpTool.getIP(request));
-        log.info("结束调用UserService");
-        if (loginResult.isFailed()) {
-            if (null == loginResult.getData()) {
-                String path = "Login_" + account;
-                try (com.megatron.framework.lock.AutoCloseLock lock = lockFactory.getACLock(path)) {
-                    Assert.isTrue(lock.acquire(10, TimeUnit.SECONDS), "请求超时");
-                    start = System.currentTimeMillis();
-                    String value = redisTemplate.opsForValue().get(RequestContext.Catalog.User.name() + account);
-                    log.info("查询Redis耗时{}ms", System.currentTimeMillis() - start);
-                    SystemConfig errorNumber = systemConfigRepository.queryByCode("pwdErrorNumber");
-                    int error = Integer.parseInt(errorNumber.getValue());
-                    if (!StringUtils.hasText(value)) {
-                        //密码操作失败
+        try {
+            log.info("开始执行登录请求");
+            long start;
+            String account = loginModel.getAccount();
+            String password = loginModel.getPassword();
+            log.info("开始调用UserService");
+            GeneralResult<Map<String, Object>> loginResult = userService
+                    .login(account, password, request.getSession().getId(), IpTool.getIP(request), loginModel.getIsManager());
+            log.info("请求方ip地址trx:" + trxService.getRequestIpAddress(request));
+            log.info("请求方ip地址:" + IpTool.getIP(request));
+            log.info("结束调用UserService");
+            if (loginResult.isFailed()) {
+                if (null == loginResult.getData()) {
+                    String path = "Login_" + account;
+                    try (com.megatron.framework.lock.AutoCloseLock lock = lockFactory.getACLock(path)) {
+                        Assert.isTrue(lock.acquire(10, TimeUnit.SECONDS), "请求超时");
                         start = System.currentTimeMillis();
-                        redisTemplate.opsForValue()
-                                .set(RequestContext.Catalog.User.name() + account, String.valueOf(1), 60, TimeUnit.SECONDS);
-                        log.info("写入Redis耗时{}ms", System.currentTimeMillis() - start);
-                        loginResult = new GeneralResult<>(false, loginResult.getMessage() + ",已操作【1】次");
-                    } else if (Integer.parseInt(value) >= error) {
-                        Result lockResult = userService.lockByAccount(account);
-                        boolean success = lockResult.isSuccess();
-                        start = System.currentTimeMillis();
-                        redisTemplate.delete(RequestContext.Catalog.User.name() + account);
-                        log.info("删除Redis耗时{}ms", System.currentTimeMillis() - start);
-                        if (success) {
-                            loginResult = new GeneralResult<>(false, "账号或者密码错误已达【" + error + "】次,若用户存在将被冻结,请联系管理员解冻");
+                        String value = redisTemplate.opsForValue().get(RequestContext.Catalog.User.name() + account);
+                        log.info("查询Redis耗时{}ms", System.currentTimeMillis() - start);
+                        SystemConfig errorNumber = systemConfigRepository.queryByCode("pwdErrorNumber");
+                        int error = Integer.parseInt(errorNumber.getValue());
+                        if (!StringUtils.hasText(value)) {
+                            //密码操作失败
+                            start = System.currentTimeMillis();
+                            redisTemplate.opsForValue()
+                                    .set(RequestContext.Catalog.User.name() + account, String.valueOf(1), 60, TimeUnit.SECONDS);
+                            log.info("写入Redis耗时{}ms", System.currentTimeMillis() - start);
+                            loginResult = new GeneralResult<>(false, loginResult.getMessage() + ",已操作【1】次");
+                        } else if (Integer.parseInt(value) >= error) {
+                            Result lockResult = userService.lockByAccount(account);
+                            boolean success = lockResult.isSuccess();
+                            start = System.currentTimeMillis();
+                            redisTemplate.delete(RequestContext.Catalog.User.name() + account);
+                            log.info("删除Redis耗时{}ms", System.currentTimeMillis() - start);
+                            if (success) {
+                                loginResult = new GeneralResult<>(false, "账号或者密码错误已达【" + error + "】次,若用户存在将被冻结,请联系管理员解冻");
+                            } else {
+                                loginResult = new GeneralResult<>(false, "认证服务账号缓存存在问题");
+                            }
                         } else {
-                            loginResult = new GeneralResult<>(false, "认证服务账号缓存存在问题");
+                            start = System.currentTimeMillis();
+                            redisTemplate.boundValueOps(RequestContext.Catalog.User.name() + account).increment(1L);
+                            log.info("写入Redis耗时{}ms", System.currentTimeMillis() - start);
+                            String num = redisTemplate.opsForValue().get(RequestContext.Catalog.User.name() + account);
+                            loginResult = new GeneralResult<>(false, loginResult.getMessage() + ",已操作【" + num + "】次");
                         }
-                    } else {
-                        start = System.currentTimeMillis();
-                        redisTemplate.boundValueOps(RequestContext.Catalog.User.name() + account).increment(1L);
-                        log.info("写入Redis耗时{}ms", System.currentTimeMillis() - start);
-                        String num = redisTemplate.opsForValue().get(RequestContext.Catalog.User.name() + account);
-                        loginResult = new GeneralResult<>(false, loginResult.getMessage() + ",已操作【" + num + "】次");
+                        log.info("登录请求处理完成");
+                        return loginResult;
+                    } catch (Exception e) {
+                        log.error("Get login error message:", e);
+                        log.info("登录请求处理完成");
+                        return loginResult;
                     }
-                    log.info("登录请求处理完成");
-                    return loginResult;
-                } catch (Exception e) {
-                    log.error("Get login error message:", e);
-                    log.info("登录请求处理完成");
-                    return loginResult;
                 }
             }
+            start = System.currentTimeMillis();
+            redisTemplate.delete(RequestContext.Catalog.User.name() + account);
+            log.info("删除Redis耗时{}ms", System.currentTimeMillis() - start);
+            log.info("登录请求处理完成");
+            return loginResult;
+        }catch (Exception e){
+            log.error("登录异常",e);
+            return new GeneralResult<>(false,"登录异常:" + e.getMessage());
         }
-        start = System.currentTimeMillis();
-        redisTemplate.delete(RequestContext.Catalog.User.name() + account);
-        log.info("删除Redis耗时{}ms", System.currentTimeMillis() - start);
-        log.info("登录请求处理完成");
-        return loginResult;
     }
 
     /**
diff --git a/bocloud.sms.booter/src/main/resources/logback-spring.xml b/bocloud.sms.booter/src/main/resources/logback-spring.xml
index c47bc85..2a40a09 100644
--- a/bocloud.sms.booter/src/main/resources/logback-spring.xml
+++ b/bocloud.sms.booter/src/main/resources/logback-spring.xml
@@ -55,21 +55,29 @@
         </filter>
     </appender>
 
+    <!-- 异步 Syslog 配置 -->
+    <appender name="ASYNC_SYSLOG" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="SYSLOG"/>
+        <queueSize>5000</queueSize> <!-- 设置队列大小,取决于应用负载 -->
+        <discardingThreshold>0</discardingThreshold> <!-- 设置丢弃策略 -->
+        <includeCallerData>true</includeCallerData>
+    </appender>
+
     <root level="${logging.level.root}">
         <appender-ref ref="CONSOLE"/>
         <appender-ref ref="LOG_FILE"/>
-        <appender-ref ref="SYSLOG"/>
+        <appender-ref ref="ASYNC_SYSLOG"/>
     </root>
 
     <logger name="com.bocloud" level="${logging.level.com.bocloud}" additivity="false">
         <appender-ref ref="CONSOLE"/>
         <appender-ref ref="LOG_FILE"/>
-        <appender-ref ref="SYSLOG"/>
+        <appender-ref ref="ASYNC_SYSLOG"/>
     </logger>
 
     <logger name="com.alibaba.druid.pool.DruidAbstractDataSource" level="error" additivity="false">
         <appender-ref ref="CONSOLE"/>
         <appender-ref ref="LOG_FILE"/>
-        <appender-ref ref="SYSLOG"/>
+        <appender-ref ref="ASYNC_SYSLOG"/>
     </logger>
 </configuration>
\ No newline at end of file
diff --git a/bocloud.sms.service/src/main/java/com/bocloud/sms/service/IndexServiceImpl.java b/bocloud.sms.service/src/main/java/com/bocloud/sms/service/IndexServiceImpl.java
index 5b40ee9..7980c36 100644
--- a/bocloud.sms.service/src/main/java/com/bocloud/sms/service/IndexServiceImpl.java
+++ b/bocloud.sms.service/src/main/java/com/bocloud/sms/service/IndexServiceImpl.java
@@ -94,7 +94,8 @@ public class IndexServiceImpl implements IndexService {
         log.info("user:{}", JSON.toJSONString(user));
         param.put("userId", user.getUserId() == null ? ykUtil.getReqUserId() : user.getUserId());
         param.put("page", 1);
-        param.put("limit", Integer.MAX_VALUE);
+        param.put("limit", 15); //理想要求 固定值15
+        log.info("get task list params:{}", JSON.toJSONString(param));
         String result = ykUtil.call(YkInfo.getTaskList, param, JSONArray.class);
         log.info("result:{}",result);
         JSONObject jsonObject = JSONArray.parseObject(result, JSONObject.class);