2023年11月10日17:53:02

main
litao 2 years ago
parent 7ebbbbf331
commit 35ee71efb1
  1. 5
      src/main/java/org/springblade/hospital/agent/service/HikAgentService.java
  2. 3
      src/main/java/org/springblade/hospital/agent/utils/QueueUtils.java
  3. 14
      src/main/java/org/springblade/hospital/controller/AlarmInformationController.java
  4. 4
      src/main/java/org/springblade/hospital/controller/AppDataController.java
  5. 2
      src/main/java/org/springblade/hospital/controller/BfcfLogController.java
  6. 27
      src/main/java/org/springblade/hospital/hik/alarm/Alarm.java
  7. 1
      src/main/java/org/springblade/hospital/mapper/AlarmInformationMapper.java
  8. 4
      src/main/java/org/springblade/hospital/newalarm/communicationCom/HTTPClientUtil.java
  9. 3
      src/main/java/org/springblade/hospital/service/impl/AppDataServiceImpl.java
  10. 27
      src/main/java/org/springblade/hospital/utils/CornJobUtil.java
  11. 2
      src/main/java/org/springblade/hospital/utils/ExternalUtils.java
  12. 7
      src/main/java/org/springblade/hospital/websocket/WebSocketServer.java
  13. 180
      src/main/resources/log/logback-dev.xml

@ -10,6 +10,8 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.hospital.agent.annotation.GrpcService; import org.springblade.hospital.agent.annotation.GrpcService;
import org.springblade.hospital.agent.constant.MemoryCache; import org.springblade.hospital.agent.constant.MemoryCache;
import org.springblade.hospital.agent.dto.Constant; import org.springblade.hospital.agent.dto.Constant;
@ -20,6 +22,7 @@ import org.springblade.hospital.agent.hik.utils.HikClient;
import org.springblade.hospital.agent.utils.DataTrans; import org.springblade.hospital.agent.utils.DataTrans;
import org.springblade.hospital.agent.utils.QueueUtils; import org.springblade.hospital.agent.utils.QueueUtils;
import org.springblade.hospital.hik.alarm.Alarm; import org.springblade.hospital.hik.alarm.Alarm;
import org.springblade.hospital.newalarm.communicationCom.HTTPClientUtil;
import org.springblade.hospital.utils.ExternalUtils; import org.springblade.hospital.utils.ExternalUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
@ -180,7 +183,7 @@ public class HikAgentService extends AgentGrpc.AgentImplBase {
int devType = request.getDevType(); int devType = request.getDevType();
List<Map> list = externalUtils.getList(page, pagesize, null, String.valueOf(devType), "100", null); List<Map> list = externalUtils.getList(page, pagesize, null, String.valueOf(devType), "100", null);
System.out.println("list======" + list); log.info("list======" + list);
// List<RoadwayVo> roadwayVoList = hikService.getTheDeviceInfo(); // List<RoadwayVo> roadwayVoList = hikService.getTheDeviceInfo();

@ -5,6 +5,9 @@ import com.hisense.device.agent.grpc.DataResponse;
import com.hisense.device.agent.grpc.Point; import com.hisense.device.agent.grpc.Point;
import io.grpc.stub.StreamObserver; import io.grpc.stub.StreamObserver;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.hospital.agent.service.HikAgentService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Arrays; import java.util.Arrays;

@ -25,6 +25,7 @@ import com.google.gson.Gson;
import com.google.protobuf.ByteString; import com.google.protobuf.ByteString;
import com.hisense.device.agent.grpc.Point; import com.hisense.device.agent.grpc.Point;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.json.JSONException; import org.json.JSONException;
import org.springblade.common.cache.DictBizCache; import org.springblade.common.cache.DictBizCache;
import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.boot.ctrl.BladeController;
@ -46,6 +47,7 @@ import org.springframework.http.*;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.*; import java.util.*;
@ -57,6 +59,7 @@ import java.util.*;
@NonDS @NonDS
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
@Slf4j
@RequestMapping("/alarmInformation") @RequestMapping("/alarmInformation")
public class AlarmInformationController extends BladeController { public class AlarmInformationController extends BladeController {
@ -220,4 +223,15 @@ public class AlarmInformationController extends BladeController {
} }
} }
/**
* 获取客户端IP
*/
@GetMapping("/getIp")
@CrossOrigin
public R getIp(HttpServletRequest request) {
String ip = request.getRemoteAddr();
// log.info("IP:" + ip);
return R.data(ip);
}
} }

@ -20,6 +20,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.RandomStringUtils;
@ -66,6 +67,7 @@ import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
@RequestMapping("/appData") @RequestMapping("/appData")
@Slf4j
public class AppDataController extends BladeController { public class AppDataController extends BladeController {
private final IAppDataService appDataService; private final IAppDataService appDataService;
@ -79,6 +81,7 @@ public class AppDataController extends BladeController {
@GetMapping("/list") @GetMapping("/list")
public R<IPage<AppData>> list(AppData appData, Query query) { public R<IPage<AppData>> list(AppData appData, Query query) {
log.info("/appData/list执行了--------------");
return R.data(appDataService.getPage(Condition.getPage(query), appData)); return R.data(appDataService.getPage(Condition.getPage(query), appData));
} }
@ -405,7 +408,6 @@ public class AppDataController extends BladeController {
} }
} }
//
public static void main(String[] args) { public static void main(String[] args) {
try { try {
// RestTemplate restTemplate = new RestTemplate(); // RestTemplate restTemplate = new RestTemplate();

@ -18,6 +18,8 @@ package org.springblade.hospital.controller;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tenant.annotation.NonDS;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;

@ -534,7 +534,7 @@ public class Alarm implements CommandLineRunner {
AtomicInteger size = new AtomicInteger(0); AtomicInteger size = new AtomicInteger(0);
List<Thread> threadList = new ArrayList<>(); List<Thread> threadList = new ArrayList<>();
ScheduledFuture<?> scheduledFuture = scheduled.scheduleAtFixedRate(() -> { ScheduledFuture<?> scheduledFuture = scheduled.scheduleAtFixedRate(() -> {
log.info("我执行了1"); // log.info("我执行了1");
List<Map> list = externalUtils.getList(0, 0, null, null, "105", null); List<Map> list = externalUtils.getList(0, 0, null, null, "105", null);
log.info("获取报警主机列表数量为:" + list.size()); log.info("获取报警主机列表数量为:" + list.size());
if (list.size() != size.get()) { if (list.size() != size.get()) {
@ -545,8 +545,24 @@ public class Alarm implements CommandLineRunner {
} }
} }
threadList.clear(); threadList.clear();
// 物联网平台获取的报警主机列表 // 51服务器使用:物联网平台获取的报警主机列表
getList(list, threadList); // getList(list, threadList);
// 52服务器使用:不需要监听,只获取设备信息:ip、端口号、mac
for (Map map : list) {
String s = JSON.toJSONString(map.get("tags")).replace("\\", "");
s = s.substring(1, s.length() - 1);
Map tagsMap = JSONObject.parseObject(s, Map.class);
// 报警主机信息
String number = tagsMap.get("hostNumber").toString();//序列号
String ip = tagsMap.get("ip").toString();
String port = tagsMap.get("port").toString();
String mac = tagsMap.get("mac").toString();
ipMap.put(number, ip);
portMap.put(number, port);
macMap.put(mac, number);
}
} }
}, 0, 1, TimeUnit.DAYS); }, 0, 1, TimeUnit.DAYS);
@ -677,7 +693,7 @@ public class Alarm implements CommandLineRunner {
// 登录认证 // 登录认证
String rzUrl = "http://" + ip + ":" + port + "/ISAPI/System/deviceInfo"; String rzUrl = "http://" + ip + ":" + port + "/ISAPI/System/deviceInfo";
String renzheng = HTTPClientUtil.renzheng(rzUrl, client); String renzheng = HTTPClientUtil.renzheng(rzUrl, client);
System.out.println("登录信息:" + renzheng); log.info("登录信息:" + renzheng);
if (renzheng.contains(number)) { if (renzheng.contains(number)) {
// 获取设备系统能力集 // 获取设备系统能力集
@ -696,7 +712,7 @@ public class Alarm implements CommandLineRunner {
" <heartbeat>1</heartbeat>\n" + " <heartbeat>1</heartbeat>\n" +
" <eventMode>all</eventMode>\n" + " <eventMode>all</eventMode>\n" +
"</SubscribeEvent>"; "</SubscribeEvent>";
System.out.println("jl:" + clientUtil.doPost(jlUrl, xml, number, client, mac)); log.info("jl:" + clientUtil.doPost(jlUrl, xml, number, client, mac));
} }
}); });
thread.start(); thread.start();
@ -704,4 +720,5 @@ public class Alarm implements CommandLineRunner {
} }
} }
} }
} }

@ -31,4 +31,5 @@ import java.util.List;
public interface AlarmInformationMapper extends BaseMapper<AlarmInformation> { public interface AlarmInformationMapper extends BaseMapper<AlarmInformation> {
List<AlarmInformationExcel> export(AlarmInformation alarmInformation); List<AlarmInformationExcel> export(AlarmInformation alarmInformation);
} }

@ -14,6 +14,8 @@ import org.apache.commons.httpclient.methods.DeleteMethod;
import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.PutMethod; import org.apache.commons.httpclient.methods.PutMethod;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.common.cache.DictBizCache; import org.springblade.common.cache.DictBizCache;
import org.springblade.core.tool.utils.SpringUtil; import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.hospital.agent.utils.DataTrans; import org.springblade.hospital.agent.utils.DataTrans;
@ -54,7 +56,7 @@ public class HTTPClientUtil {
String strResponseData = null; String strResponseData = null;
try { try {
int statusCode = client.executeMethod(method); int statusCode = client.executeMethod(method);
System.out.println("认证状态码:" + statusCode); log.info("认证状态码:" + statusCode);
byte[] responseData = method.getResponseBodyAsString().getBytes(method.getResponseCharSet()); byte[] responseData = method.getResponseBodyAsString().getBytes(method.getResponseCharSet());
strResponseData = new String(responseData, "utf-8"); strResponseData = new String(responseData, "utf-8");
} catch (IOException e) { } catch (IOException e) {

@ -77,8 +77,9 @@ public class AppDataServiceImpl extends BaseServiceImpl<AppDataMapper, AppData>
BladeFile bladeFile = ossBuilder.template().putFile(file.getOriginalFilename(), file.getInputStream()); BladeFile bladeFile = ossBuilder.template().putFile(file.getOriginalFilename(), file.getInputStream());
String link = bladeFile.getLink(); String link = bladeFile.getLink();
Attach attach = new Attach(); Attach attach = new Attach();
attach.setLink(link); attach.setLink("http://192.169.9.252:1883/hospital/" + bladeFile.getName());
attach.setOriginalName(file.getOriginalFilename()); attach.setOriginalName(file.getOriginalFilename());
attach.setName(bladeFile.getName());
attachService.save(attach); attachService.save(attach);
url += attach.getId() + ","; url += attach.getId() + ",";

@ -1,38 +1,25 @@
package org.springblade.hospital.utils; package org.springblade.hospital.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.protobuf.ByteString; import lombok.extern.slf4j.Slf4j;
import com.hisense.device.agent.grpc.Point; import org.slf4j.Logger;
import org.apache.commons.httpclient.HttpClient; import org.slf4j.LoggerFactory;
import org.apache.commons.httpclient.methods.PostMethod;
import org.springblade.common.cache.DictBizCache;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.hospital.agent.utils.DataTrans;
import org.springblade.hospital.agent.utils.QueueUtils; import org.springblade.hospital.agent.utils.QueueUtils;
import org.springblade.hospital.entity.AlarmInformation;
import org.springblade.hospital.entity.CornJob; import org.springblade.hospital.entity.CornJob;
import org.springblade.hospital.hik.NetSDKDemo.HCNetSDK;
import org.springblade.hospital.hik.alarm.Alarm; import org.springblade.hospital.hik.alarm.Alarm;
import org.springblade.hospital.service.IAlarmInformationService; import org.springblade.hospital.service.IAlarmInformationService;
import org.springblade.hospital.service.ICornJobService; import org.springblade.hospital.service.ICornJobService;
import org.springblade.hospital.websocket.WebSocketServer;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.*; import java.util.*;
@Component @Component
@Slf4j
public class CornJobUtil { public class CornJobUtil {
@Autowired @Autowired
@ -53,14 +40,14 @@ public class CornJobUtil {
@Async @Async
@Scheduled(initialDelay = 5000, fixedRate = 60000) @Scheduled(initialDelay = 5000, fixedRate = 60000)
public void updateStatus() { public void updateStatus() {
System.out.println("定时1分钟获取1次设备状态"); log.info("定时1分钟获取1次设备状态");
externalUtils.updateStatus(); externalUtils.updateStatus();
} }
/** /**
* 定时布撤防每3分钟执行一次 * 定时布撤防每3分钟执行一次
*/ */
@Async // @Async
// @Scheduled(initialDelay = 6000, fixedRate = 180000) // @Scheduled(initialDelay = 6000, fixedRate = 180000)
public void task() { public void task() {
// System.out.println("定时任务执行了2"); // System.out.println("定时任务执行了2");
@ -106,7 +93,7 @@ public class CornJobUtil {
} }
} }
@Async // @Async
// @Scheduled(initialDelay = 7000, fixedRate = 3600000) // @Scheduled(initialDelay = 7000, fixedRate = 3600000)
public void testWebSocket() { public void testWebSocket() {
// System.out.println("定时任务执行了3"); // System.out.println("定时任务执行了3");

@ -8,6 +8,8 @@ import com.hisense.device.agent.grpc.Point;
import io.swagger.models.auth.In; import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.common.cache.ParamCache; import org.springblade.common.cache.ParamCache;
import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;

@ -2,6 +2,9 @@ package org.springblade.hospital.websocket;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.hospital.agent.utils.QueueUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import javax.websocket.*; import javax.websocket.*;
@ -137,7 +140,7 @@ public class WebSocketServer {
String message = json.get("message").toString(); String message = json.get("message").toString();
log.info("推送内容:" + message); log.info("推送内容:" + message);
System.out.println("webSocketSet连接数量:" + webSocketSet.size()); log.info("webSocketSet连接数量:" + webSocketSet.size());
for (WebSocketServer item : webSocketSet) { for (WebSocketServer item : webSocketSet) {
try { try {
// System.out.println(item.sid + "===" + item.session); // System.out.println(item.sid + "===" + item.session);
@ -151,7 +154,7 @@ public class WebSocketServer {
public static void test() { public static void test() {
// System.out.println("webSocketSet连接数量:" + webSocketSet.size()); // System.out.println("webSocketSet连接数量:" + webSocketSet.size());
for (WebSocketServer item : webSocketSet) { for (WebSocketServer item : webSocketSet) {
System.out.println(item.sid + "===" + item.session); log.info(item.sid + "===" + item.session);
} }
} }

@ -1,113 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds"> <configuration>
<!-- 自定义参数监听 --> <!-- 日志存放路径 -->
<contextListener class="org.springblade.core.log.listener.LoggerStartupListener"/> <property name="log.path" value="/home/hospital/project/logs" />
<springProperty scope="context" name="springAppName" source="spring.application.name"/> <!-- 日志输出格式 -->
<property name="log.pattern" value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - (%msg%n)" />
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- 控制台输出 --> <!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern> <pattern>${log.pattern}</pattern>
<charset>utf8</charset>
</encoder> </encoder>
</appender> </appender>
<if condition='property("ELK_MODE").toUpperCase().contains("TRUE")'> <!-- 系统日志输出 -->
<then> <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 推送日志至elk --> <file>${log.path}/sys-info.log</file>
<appender name="STDOUT_LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <!-- 循环政策:基于时间创建日志文件 -->
<destination>${DESTINATION}</destination> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志输出编码 --> <!-- 日志文件名格式 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"> <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
<providers> <!-- 日志最大的历史 60天 -->
<timestamp> <maxHistory>2</maxHistory>
<timeZone>UTC</timeZone> </rollingPolicy>
</timestamp> <encoder>
<pattern> <pattern>${log.pattern}</pattern>
<pattern> </encoder>
{ <filter class="ch.qos.logback.classic.filter.LevelFilter">
"traceId": "%X{traceId}", <!-- 过滤的级别 -->
"requestId": "%X{requestId}", <level>INFO</level>
"accountId": "%X{accountId}", <!-- 匹配时的操作:接收(记录) -->
"tenantId": "%X{tenantId}", <onMatch>ACCEPT</onMatch>
"logLevel": "%level", <!-- 不匹配时的操作:拒绝(不记录) -->
"serviceName": "${springAppName:-SpringApp}", <onMismatch>DENY</onMismatch>
"pid": "${PID:-}", </filter>
"thread": "%thread", </appender>
"class": "%logger{40}",
"line":"%L",
"message": "%message"
}
</pattern>
</pattern>
<mdc/>
<stackTrace/>
</providers>
</encoder>
</appender>
</then>
</if>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="${STDOUT_APPENDER}"/>
</root>
<logger name="net.sf.ehcache" level="INFO"/>
<logger name="druid.sql" level="INFO"/>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>2</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- MyBatis log configure --> <!-- 用户访问日志输出 -->
<logger name="com.apache.ibatis" level="INFO"/> <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
<logger name="org.mybatis.spring" level="INFO"/> <file>${log.path}/sys-user.log</file>
<logger name="java.sql.Connection" level="INFO"/> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<logger name="java.sql.Statement" level="INFO"/> <!-- 按天回滚 daily -->
<logger name="java.sql.PreparedStatement" level="INFO"/> <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>2</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 减少部分debug日志 --> <!-- 系统模块日志级别控制 -->
<logger name="druid.sql" level="INFO"/> <logger name="com.haier.cosmo.hmzy.zhgd" level="info" />
<logger name="org.apache.shiro" level="INFO"/> <!-- Spring日志级别控制 -->
<logger name="org.mybatis.spring" level="INFO"/> <logger name="org.springframework" level="warn" />
<logger name="org.springframework" level="INFO"/>
<logger name="org.springframework.context" level="WARN"/>
<logger name="org.springframework.beans" level="WARN"/>
<logger name="com.baomidou.mybatisplus" level="INFO"/>
<logger name="org.apache.ibatis.io" level="INFO"/>
<logger name="org.apache.velocity" level="INFO"/>
<logger name="org.eclipse.jetty" level="INFO"/>
<logger name="io.undertow" level="INFO"/>
<logger name="org.xnio.nio" level="INFO"/>
<logger name="org.thymeleaf" level="INFO"/>
<logger name="springfox.documentation" level="INFO"/>
<logger name="org.hibernate.validator" level="INFO"/>
<logger name="com.netflix.loadbalancer" level="INFO"/>
<logger name="com.netflix.hystrix" level="INFO"/>
<logger name="com.netflix.zuul" level="INFO"/>
<logger name="de.codecentric" level="INFO"/>
<!-- cache INFO -->
<logger name="net.sf.ehcache" level="INFO"/>
<logger name="org.springframework.cache" level="INFO"/>
<!-- cloud -->
<logger name="org.apache.http" level="INFO"/>
<logger name="com.netflix.discovery" level="INFO"/>
<logger name="com.netflix.eureka" level="INFO"/>
<!-- 业务日志 -->
<Logger name="org.springblade" level="INFO"/>
<Logger name="org.springblade.core.tenant" level="INFO"/>
<Logger name="org.springblade.core.version" level="INFO"/>
<!-- 减少nacos日志 --> <root level="info">
<logger name="com.alibaba.nacos" level="ERROR"/> <appender-ref ref="console" />
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info" />
<appender-ref ref="file_error" />
</root>
<!--系统用户操作日志-->
<logger name="sys-user" level="info">
<appender-ref ref="sys-user"/>
</logger>
</configuration> </configuration>

Loading…
Cancel
Save