chore(v0.11): 全路径纳入版本库与走查整改

- .gitignore:显式放行全部 maven-*、scripts、dev-support、frontend、反1、artifacts、历史导出目录
- 新增跟踪:device-manager/device-sdk/legacy-public、davinci-manager、cwos-*、cwos-resource 等源码与附属资源
- davinci FileStorageManagerImpl:Feign Response 关闭、绝对 URL 拉流 SSRF 校验(协议/主机/解析地址)
- davinci OuterCallFeignClient:补充契约说明
- cwos-common-aks AksConstant:final 类 + 私有构造防误实例化
- device-manager DeviceConstant:沿用 DEFAULT_APPLICATIONID 拼写修正

Made-with: Cursor

Former-commit-id: 0a34c76a82
This commit is contained in:
反编译工作区
2026-04-24 23:54:05 +08:00
parent de6245a492
commit 27c3949045
3193 changed files with 227339 additions and 1 deletions
@@ -0,0 +1,238 @@
security.basic.enabled=false
cloudwalk.security.extendedUrl=/health,/**/*.html
spring.main.allow-bean-definition-overriding=true
# pagehelper properties
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
# \uFFFD\uFFFD\uFFFD\uFFFDinfo\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05BE\uFFFD\u013C\uFFFD\uFFFD\uFFFD\u0421\uFFFD\uFFFD\uFFFD\uFFFD
logging.file.info.max-index=10
logging.file.error.max-index=20
# \uFFFD\uFFFD\u05BE\uFFFD\u013C\uFFFD\uFFFD\uFFFD\uFFFD\u00B7\uFFFD\uFFFD
logging.path=./logs
# \uFFFD\uFFFD\u04E1\uFFFD\uFFFD\uFFFD\uFFFD\u05BE\uFFFD\u023C\uFFFD
logging.level.root=info
logging.level.cn.cloudwalk=info
logging.level.cn.cloudwalk.web.alarm.statisc=error
# \uFFFD\u0336\uFFFD\u05B5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u07B8\uFFFD
logging.config=classpath:log/logback.xml
# mysql config
mybatis.mapper-locations=classpath:cn/cloudwalk/data/**/mysql/*.xml
# database config
spring.datasource.username=root
spring.datasource.password=1qaz!QAZ
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://10.128.161.95/alarm_deploy?useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.druid.validation-query=SELECT 1
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.time-between-eviction-runs-millis=28000
# kafka config
kafka.producer.bootstrap-servers=10.128.161.95:9092
kafka.consumer.bootstrap-servers=10.128.161.95:9092
#spring redis config
spring.redis.host=10.128.161.95
spring.redis.port=6379
spring.redis.password=1qaz!QAZ
spring.redis.database=6
spring.redis.timeout=1000
spring.redis.pool.max-active=10
spring.redis.pool.max-wait=-1
spring.redis.pool.max-idle=10
spring.redis.pool.min-idle=0
spring.http.multipart.max-file-size=10MB
#ribbon timeout
ribbon.ReadTimeout=5000
endpoints.jmx.enabled=false
# ------------------------------------\uFFFD\uFFFD\u0635\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD------------------------------------------
# \uFFFD\uFFFD\uFFFD\u02B9\uFFFD\u00F5\uFFFD\uFFFD\uFFFD\uFFFD\u0136\u02FF\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u02FF\u06B8\uFFFD\uFFFD\uB8EC\uFFFD\uFFFD\u07F0\uFFFD\u022B\uFFFD\uFFFD
# Nginx\uFFFD\uFFFD\uFFFD\u01B4\u02F6\u02FF\u06B5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0228\uFFFD\uFFFD
management.port=17211
# springboot2\uFFFD\u013D\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04FF\uFFFD\uFFFD\uFFFD/actuator/health
# springboot1\uFFFD\u013D\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04FF\uFFFD\uFFFD\uFFFD/health
# \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00FF\uFFFD\uFFFD\u0530\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6C7E\uFFFD\u013D\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04FF\uFFFD\u0373\u04BB\uFFFD\uFFFD\uFFFD\uFFFD\u03AA/actuator/health
# springboot1\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04FF\u06B5\u0137\uFFFD\uFFFD\uFFFD\u0228\uFFFD\uFFFD
management.security.enabled=false
# \uFFFD\u0631\uFFFD\uFFFD\uFFFD\uFFFD\uFFFDmanagement\uFFFD\u04FF\uFFFD
endpoints.enabled=false
# \uFFFD\uFFFD\uFFFD\uFFFD/actuator/info
endpoints.info.enabled=true
# \uFFFD\uFFFD\uFFFD\uFFFD/actuator/health
endpoints.health.enabled=true
# \uFFFD\uFFFD\uFFFD\uFFFD/actuator/prometheus
endpoints.prometheus.enabled=true
# \u05E2\uFFFD\uFFFDconsul\u02B1\uFFFD\uFFFD\uFFFD\uFFFD\u0373\u04BB\uFFFD\u013D\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05B7
spring.cloud.consul.discovery.health-check-path=${management.context-path}/health
# \uFFFD\uFFFD\u02B5\uFFFD\uFFFD\u05E2\uFFFD\uFFFDmanagement\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2E32\uFFFD\u01E3\uFFFD\uFFFD\uFFFD\uFFFD\uFFFDspringboot1.x\uFFFD\uFFFD\uFFFD\u06B5\uFFFDbug
spring.cloud.consul.discovery.management-suffix=${spring.cloud.client.ipAddress}-${server.port}-management
# Elasticsearch
# 9200\uFFFD\u02FF\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFDHTTP REST API\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFDElasticSearch\uFFFD\uFFFD\uFFFD\uFFFD9300\uFFFD\u02FF\uFFFD\uFFFD\u01F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u012C\uFFFD\u03F6\u02FF\uFFFD
elasticsearch.ip=10.128.161.95
elasticsearch.port=9202
elasticsearch.pool=5
#\u05E2\uFFFD\uFFFDcluster.name\uFFFD\uFFFD\u04AA\uFFFD\uFFFDconfig/elasticsearch.yml\uFFFD\u0435\uFFFDcluster.name\u04BB\uFFFD\uFFFD
elasticsearch.cluster.name=my-application
# alarm level default config
cloudwalk.alarm-app.level.defalut.list[0].name=\u4E00\u7EA7\u62A5\u8B66
cloudwalk.alarm-app.level.defalut.list[0].color=#F56C6C
cloudwalk.alarm-app.level.defalut.list[0].useDefaultSound=true
cloudwalk.alarm-app.level.defalut.list[0].uploadMessageCenter=0
cloudwalk.alarm-app.level.defalut.list[1].name=\u4E8C\u7EA7\u62A5\u8B66
cloudwalk.alarm-app.level.defalut.list[1].color=#FF8D62
cloudwalk.alarm-app.level.defalut.list[1].useDefaultSound=true
cloudwalk.alarm-app.level.defalut.list[1].uploadMessageCenter=0
cloudwalk.alarm-app.level.defalut.list[2].name=\u4E09\u7EA7\u62A5\u8B66
cloudwalk.alarm-app.level.defalut.list[2].color=#FDB314
cloudwalk.alarm-app.level.defalut.list[2].useDefaultSound=true
cloudwalk.alarm-app.level.defalut.list[2].uploadMessageCenter=0
cloudwalk.alarm-app.level.defalut.list[3].name=\u56DB\u7EA7\u62A5\u8B66
cloudwalk.alarm-app.level.defalut.list[3].color=#0075DA
cloudwalk.alarm-app.level.defalut.list[3].useDefaultSound=true
cloudwalk.alarm-app.level.defalut.list[3].uploadMessageCenter=0
cloudwalk.alarm-app.level.defalut.list[4].name=\u4E94\u7EA7\u62A5\u8B66
cloudwalk.alarm-app.level.defalut.list[4].color=#7A869A
cloudwalk.alarm-app.level.defalut.list[4].useDefaultSound=true
cloudwalk.alarm-app.level.defalut.list[4].uploadMessageCenter=0
#is open gather and invade control type, true is open, false is close
cloudwalk.alarm-app.control.black=true
cloudwalk.alarm-app.control.stranger=false
cloudwalk.alarm-app.control.frequentStranger=false
cloudwalk.alarm-app.control.faceProperties=false
cloudwalk.alarm-app.control.bodyProperties=false
cloudwalk.alarm-app.control.plate=false
cloudwalk.alarm-app.control.gather=false
cloudwalk.alarm-app.control.invade=false
cloudwalk.alarm-app.control.groupCompare=false
cloudwalk.alarm-app.control.nonVehicle=false
cloudwalk.alarm-app.control.helmet=false
cloudwalk.alarm-app.control.batteryVehicle=false
cloudwalk.alarm-app.control.userDefined=false
# togather contrl type time-interval config
alarm.timeInterval=6
# feign name
cloudwalk.alarm-app.feign.name.cwos-portal=cwos-portal
cloudwalk.alarm-app.feign.name.component-organization=ninca-common-component-organization
cloudwalk.alarm-app.feign.name.mqtt=cloudwalk-device-thirdparty
cloudwalk.alarm-app.feign.name.face-engine=cwos-portal
cloudwalk.alarm-app.tis.service-name=trtis_attribute_feature
cloudwalk.alarm-app.feign.name.ninca-common=ninca-common
cloudwalk.alarm-app.feign.name.common-vehicle=ninca-common-vehicle-app
cloudwalk.alarm-app.feign.name.cloudwalk-device-thirdparty=cloudwalk-device-thirdparty
# alarm's service code on kafka and alarm's group id
cloudwalk.alarm-app.kafka.service-code=alarm-app
cloudwalk.alarm-app.kafka.consumer.group-id=alarm_systemwdd
cloudwalk.alarm-app.kafka.producer.sendrecord=true
# other system ips
cloudwalk.alarm-app.cwos.prefix=http://10.128.161.95:80/cwos-portal/portal/fileManager/imgByPath?path=
cloudwalk.alarm-app.cwos.relativePrefix=/cwos-portal/portal/fileManager/imgByPath?path=
cloudwalk.alarm-app.download.prefix=http://10.128.161.95
# Therad pool config
cloudwalk.alarm-app.thread-config.core-pool-size=50
cloudwalk.alarm-app.thread-config.max-pool-size=100
cloudwalk.alarm-app.thread-config.queue-capacity=50
cloudwalk.alarm-app.thread-config.keep-alive-seconds=60000
cloudwalk.alarm-app.thread-config.thread-name-prefix=alarm-
# MySQL record retain days
cloudwalk.alarm-app.record-data.timer=0 0 1 ? * *
cloudwalk.alarm-app.record-data.dataKeepDays=90
cloudwalk.alarm-app.record-data.nums=10000000
cloudwalk.alarm-app.record-data.byPeriodRedisLockSeconds=2500
cloudwalk.alarm-app.record-data.byNumRedisLockSeconds=240
# download file
cloudwalk.alarm-app.download.downDir=download
cloudwalk.alarm-app.download.excelMaxRows=1000
cloudwalk.alarm-app.download.exportAllCount=5000
cloudwalk.alarm-app.download.shardingSize=10485760
# cron of statistic data
cloudwalk.alarm-app.statistic.timer=0 0 2 * * ?
# cron of statistic data
cloudwalk.alarm-app.frequent-stranger.timer=0 0 2 * * ?
# cron of statistic data
cloudwalk.alarm-app.task-data-upd.timer=0 0/1 * * * ?
# cron of vehicle manage data
cloudwalk.alarm-app.vehicle.manage.timer=0 0/2 * * * ?
cloudwalk.alarm-app.syn.data.vehicleSize=100
# cron of person0 manage data
cloudwalk.alarm-app.person.organization.timer=0 0/2 * * * ?
cloudwalk.alarm-app.syn.data.personSize=100
# swagger\uFFFD\u01F7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
swagger.enable=true
# \uFFFD\uFFFD\u046F\uFFFD\u6FAF\u04B3\uFFFD\uFFFD\uFFFDURI
cloudwalk.alarm.display.url=http://localhost/sub-alarm-front#/alarmInformation/record
# elasticsearch\uFFFD\uFFFD\uFFFD\uFFFD
cloudwalk.alarm-app.elasticsearch.indexName=alarm_record
# \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
cloudwalk.alarm-app.feign.name.cluster=engine-clustering-face
cloudwalk.alarm-app.cluster.appId=system
cloudwalk.alarm-app.cluster.appSecret=12345
# cron of getting surviving clients
cloudwalk.alarm-app.mqtt.surviveClientsTimer=1 * * * * ?
# allow client survive min times, seconds
cloudwalk.alarm-app.mqtt.surviveClientsStayTimes=120
# vedio play time
cloudwalk.alarm.record-video.playtime=30
cloudwalk.alarm.record-video.playEndTime=5
# \uFFFD\uEDEB\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u8C78\uFFFD\uFFFD\uFFFD\uFFFD
cloudwalk.alarm-app.deviceTypeCode.yfBoxTypeCode=0110,0112,0041
# \uFFFD\uFFFD\uFFFD\u06FE\uFFFD\uFFFD\u8C78\uFFFD\uFFFD\uFFFD\uFFFDPALTE
cloudwalk.alarm-app.deviceTypeCode.bigEyeTypeCode=0029,1300c
# \uFFFD\uFFFD\u022B\u00F1\uFFFD\uFFFD\uFFFD\uFFFD
cloudwalk.alarm-app.deviceTypeCode.helmentTypeCode=0109,0112
#mqtt\uFFFD\u8C78
cloudwalk.alarm-app.deviceTypeCode.mqttTypeCode=mqtt,mqtt_iot
#mqtt\uFFFD\u8C78\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
cloudwalk.alarm-app.mqtt.occur.topic=/NiRenIot/4E:21:05:13:10:72/user/get
cloudwalk.alarm-app.mqtt.occur.data=AT+STACH
cloudwalk.alarm-app.mqtt.occur.intervalTime=5
# \uFFFD\uFFFD\u05A7\uFFFD\uFFFDROI\uFFFD\uFFFD\uFFFD\u00F5\uFFFD\uFFFD\u8C78\uFFFD\uFFFD\uFFFD\uFFFD
cloudwalk.alarm-app.deviceTypeCode.noRoiFlagTypeCode=0110,0112,0041
# face score config
cloudwalk.alarm-app.quality.filter.qualityScore=0.6
cloudwalk.alarm-app.quality.filter.nonVehicleScore=0.6
# \uFFFD\u01F7\uFFFD\uFFFD\uFFFD\u0225\uFFFD\u0639\uFFFD\uFFFD\uFFFD(0\uFFFD\uFFFD 1\uFFFD\uFFFD)
cloudwalk.alarm-app.quality.filter.removeDuplicateFlag=0
# \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u5862\uFFFD\uFFFD\uFFFD\uFFFD\u0225\uFFFD\uFFFD\uFFFD\uFFFD\u0427\uFFFD\uFFFD \uFFFD\uFFFD\u03BB:\uFFFD\uFFFD\uFFFD\uFFFD
cloudwalk.alarm-app.quality.filter.duplicateValidTime=1
# \uFFFD\u01F7\uFFFD\u6D22\uFFFD\uFFFD\uFFFD\u00F5\uFFFD\u037C\u01AC
cloudwalk.snap.quality.filter.saveBetterFlag=1
# kafka\uFFFD\uFFFD\u02B1\uFFFD\uFFFD\uFFFD\u0471\uFFFD\uFFFD\uFFFD
# \uFFFD\u01F7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u02B1\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD0\uFFFD\uFFFD1\uFFFD\u01E3\uFFFD
cloudwalk.snap.alarm.kafka.delayTimeFlag=1
# \uFFFD\uFFFD\u02B1\u02B1\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD \uFFFD\uFFFD\u03BB \uFFFD\uFFFD\uFFFD\uFFFD
cloudwalk.snap.alarm.kafka.delayTime=30000
# \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
cloudwalk.snap-app.feign.name.cloudwalk-pineapple-manager=cloudwalk-pineapple-manager
cloudwalk.threelevelcontroller.floor.oneFloor=1F
cloudwalk.threelevelcontroller.floor.clearTime=100
spring.kafka.bootstrap-servers=10.128.161.95:9092
spring.kafka.consumer.group-id=123456
spring.kafka.consumer.auto-commit-interval=30000
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
# \u67E5\u8BE2\u5E03\u63A7\u8BBE\u5907\u662F\u5426\u53EA\u8981rtsp\u8BBE\u5907
isRtsp=true
# \u8BF7\u6C42\u94F6\u6CB3\u63A5\u53E3\u5730\u5740
yinHe.api.address=10.128.161.95:20228
# ??Kafka????
spring.kafka.second-bootstrap-servers=10.128.163.229:9092
galaxy.seaweedfs=http://10.128.161.95:19333
galaxy.businessId=2524639890ba4f2cba9ba1a4eeaa4015
# \u8f7b\u821f\u0073\u0065\u0061\u0077\u0065\u0065\u0064\u0066\u0073\u5730\u5740
qingzhou.seaweedfs=http://10.0.22.104:19333
@@ -0,0 +1,21 @@
# service name and port
spring.application.name=ninca-qk-alarm-app
server.port=17011
# service center
#spring.cloud.consul.host=10.128.123.250
spring.cloud.consul.host=10.128.161.95
spring.cloud.consul.port=8500
spring.cloud.consul.discovery.serviceName=${spring.application.name}
spring.cloud.consul.discovery.register=true
spring.cloud.consul.discovery.prefer-ip-address=true
spring.cloud.consul.discovery.port=${server.port}
spring.cloud.consul.discovery.instance-id=${spring.application.name}:${spring.cloud.client.ipAddress}:${server.port}
spring.cloud.consul.discovery.deregister=false
ribbon.eureka.enabled=true
# Nginx\uFFFD\uFFFD\u05B9\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD/actuator\uFFFD\uFFFD\u0377\uFFFD\uFFFDurl
management.context-path=/actuator
@@ -0,0 +1,40 @@
/* */ package BOOT-INF.classes.cn.cloudwalk;
/* */
/* */ import org.mybatis.spring.annotation.MapperScan;
/* */ import org.springframework.boot.SpringApplication;
/* */ import org.springframework.boot.autoconfigure.SpringBootApplication;
/* */ import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/* */ import org.springframework.cloud.netflix.feign.EnableFeignClients;
/* */ import org.springframework.scheduling.annotation.EnableScheduling;
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */ @MapperScan({"cn.cloudwalk.data.alarm.**.mapper"})
/* */ @EnableFeignClients(basePackages = {"cn.cloudwalk"})
/* */ @EnableDiscoveryClient
/* */ @SpringBootApplication
/* */ @EnableScheduling
/* */ public class AlarmApplication
/* */ {
/* */ public static void main(String[] args) {
/* 31 */ SpringApplication application = new SpringApplication(new Object[] { cn.cloudwalk.AlarmApplication.class });
/* 32 */ application.run(args);
/* */ }
/* */ }
/* Location: D:\星中心\ninca_qk_alarm_app_01-ninca_qk_alarm_app\ninca-qk-alarm-app-V2.9.2_20210730.jar!\BOOT-INF\classes\cn\cloudwalk\AlarmApplication.class
* Java compiler version: 8 (52.0)
* JD-Core Version: 1.1.3
*/
@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--debug 实时查看logback运行状态,默认值为false-->
<!--scan 配置文件将每分钟扫描一次更改,配置文件如果发生改变,将会被重新加载,默认值为true-->
<!--scanPeriod 配置文件扫描周期,当不设置单位时默认为毫秒级。-->
<!--packagingData 可以在日志后看到依赖jar包名和版本,很费性能,不建议开启 -->
<configuration debug="true" scan="true" scanPeriod="30 seconds" packagingData="false">
<property name="application-name" value="alarm-app"/>
<contextName>${application-name}</contextName>
<!--读取spring的配置文件,日志路径-->
<springProperty scope="context" name="file_path" source="logging.path" defaultValue="./logs"/>
<!--读取spring的配置文件,info级别日志总大小-->
<springProperty scope="context" name="info_file_index_max" source="logging.file.info.max-index"
defaultValue="20"/>
<!--读取spring的配置文件,error级别日志总大小-->
<springProperty scope="context" name="error_file_index_max" source="logging.file.error.max-index"
defaultValue="20"/>
<property name="file_name_prefix" value="${file_path}/${application-name}"/>
<!--控制台打印格式-->
<property name="log_pattern"
value="[%d{yyyy-MM-dd HH:mm:ss.SSSZ}] [%X{X-B3-TraceId}] [%thread] [%level] [%logger{36}] [%line] %msg%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log_pattern}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<!--info-->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${file_path}/${application-name}.info.log</file>
<encoder>
<pattern>${log_pattern}</pattern>
</encoder>
<!--FixedWindowRollingPolicy 翻转策略, -->
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${file_name_prefix}.info.%i.log</fileNamePattern>
<!--最小索引 例如:fareid-app.error.1.log-->
<minIndex>1</minIndex>
<!--最大索引 例如:fareid-app.error.20.log-->
<maxIndex>${info_file_index_max}</maxIndex>
</rollingPolicy>
<!--如果超过指定大小会告知 RollingFileAppender 触发当前活动文件滚动-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<!--每个文件最大保存大小-->
<maxFileSize>30MB</maxFileSize>
</triggeringPolicy>
</appender>
<!--error-->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${file_path}/${application-name}.error.log</file>
<encoder>
<pattern>${log_pattern}</pattern>
</encoder>
<!--FixedWindowRollingPolicy 翻转策略, -->
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${file_name_prefix}.error.%i.log</fileNamePattern>
<!--最小索引 例如:fareid-app.error.1.log-->
<minIndex>1</minIndex>
<!--最大索引 例如:fareid-app.error.20.log-->
<maxIndex>${error_file_index_max}</maxIndex>
</rollingPolicy>
<!--如果超过指定大小会告知 RollingFileAppender 触发当前活动文件滚动-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<!--每个文件最大保存大小-->
<maxFileSize>30MB</maxFileSize>
</triggeringPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<root level="info">
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</configuration>
@@ -0,0 +1,3 @@
#!/bin/bash
systemctl restart ninca-qk-alarm-app.service