chore(backend): 落地 ADS 治理体系、升级日志并收录后端模板基线代码
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
##xxl-job
|
||||
xxl:
|
||||
job:
|
||||
# admin:
|
||||
### 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册; http://localhost:9900/xxl-job-admin
|
||||
# addresses: http://localhost:9900
|
||||
# addresses: http://192.168.2.130:9900
|
||||
executor:
|
||||
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
|
||||
# appname: example-test
|
||||
### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
|
||||
# address:
|
||||
### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
|
||||
# ip:
|
||||
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
|
||||
### 使用产品
|
||||
appname: example
|
||||
### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
|
||||
#因为使用docker部署,为了方便docker镜像映射,发布时固定使用“9001”作为定时任务执行器端口
|
||||
port: 9061
|
||||
### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
|
||||
logretentiondays: 7
|
||||
### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
|
||||
logpath: D:\apps\file\work\log\xxljob\
|
||||
### 执行器通讯TOKEN [选填]:非空时启用;
|
||||
# accessToken:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
logging:
|
||||
config: classpath:logback-spring.xml
|
||||
maxhistory: 7
|
||||
|
||||
server:
|
||||
port: 9060
|
||||
max-http-header-size: 20480
|
||||
servlet:
|
||||
context-path: /example
|
||||
session:
|
||||
timeout: PT4H
|
||||
|
||||
|
||||
spring:
|
||||
data:
|
||||
jpa:
|
||||
repositories:
|
||||
bootstrap-mode: lazy #jpa延迟启动
|
||||
main:
|
||||
lazy-initialization: true #bean延迟启动
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 50MB #上传文件的大小限定
|
||||
max-request-size: 50MB #上传请求数据的大小限定,限定请求的总数据大小
|
||||
profiles:
|
||||
active: xxljob
|
||||
datasource:
|
||||
druid:
|
||||
#如果连接泄露,是否需要回收泄露的连接,默认false
|
||||
removeAbandoned: true
|
||||
#如果回收了泄露的连接,是否要打印一条log,默认false
|
||||
logAbandoned: true
|
||||
#连接回收的超时时间(单位:秒),默认5分钟
|
||||
removeAbandonedTimeout: 300
|
||||
#查询超时时间(单位:秒)
|
||||
query-timeout: 300
|
||||
#事务查询超时时间(单位:秒),如果小于或等于0,则取query-timeout配置
|
||||
#transaction-query-timeout: 5
|
||||
# 配置初始化大小、最小、最大
|
||||
initial-size: 10
|
||||
minIdle: 11
|
||||
max-active: 60
|
||||
# 配置获取连接等待超时的时间(单位:毫秒)
|
||||
max-wait: 60000
|
||||
|
||||
|
||||
|
||||
#在线接口文档扫描类路径
|
||||
springdoc:
|
||||
packages-to-scan:
|
||||
- abacus.springboot.example.api
|
||||
paths-to-match:
|
||||
|
||||
|
||||
abacus:
|
||||
#在线数据字典扫描类路径
|
||||
entitypackages:
|
||||
- abacus.springboot.example.dao
|
||||
#本系统Controller扫描类路径
|
||||
controllerPackages:
|
||||
- abacus.springboot.example.controller
|
||||
#以下uri将不被统一响应体拦截包装器进行包装
|
||||
responseExcludePath:
|
||||
|
||||
# acas系统编码
|
||||
acas:
|
||||
current:
|
||||
number: example
|
||||
|
||||
|
||||
feign:
|
||||
client:
|
||||
config:
|
||||
#feign全局超时配置,单位:毫秒
|
||||
default:
|
||||
connectTimeout: 10000
|
||||
readTimeout: 30000
|
||||
#单个微服务超时配置,优先级高于全局
|
||||
# abacus-oauth2:
|
||||
# connectTimeout: 10000
|
||||
# readTimeout: 10000
|
||||
|
||||
|
||||
management:
|
||||
endpoint:
|
||||
metrics:
|
||||
enabled: true
|
||||
prometheus:
|
||||
enabled: true
|
||||
startup:
|
||||
enabled: true
|
||||
endpoints:
|
||||
web:
|
||||
exposure:
|
||||
include: "*"
|
||||
base-path: /services/actuator
|
||||
metrics:
|
||||
export:
|
||||
prometheus:
|
||||
enabled: true
|
||||
@@ -0,0 +1,31 @@
|
||||
spring:
|
||||
application:
|
||||
name: example
|
||||
cloud:
|
||||
nacos:
|
||||
username: v10dev
|
||||
password: Abacus2022
|
||||
config:
|
||||
server-addr: 192.168.2.130:8848
|
||||
namespace: 3d18c67a-d086-4c16-b377-a633c487eafb
|
||||
file-extension: yml
|
||||
group: DEFAULT_GROUP
|
||||
extension-configs:
|
||||
- data-id: abacus-database.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-discovery.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-acas.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-redis.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-actuator.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-xxljob.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!-- always a good activate OnConsoleStatusListener -->
|
||||
<statusListener
|
||||
class="ch.qos.logback.core.status.OnConsoleStatusListener" />
|
||||
|
||||
<springProperty name="LOGPATH" source="logging.path" />
|
||||
<springProperty name="APPNAME" source="spring.application.name" />
|
||||
|
||||
<property name="log.path" value="F:/Eclipse/work/log/${APPNAME:-.}/${HOSTNAME:-.}" />
|
||||
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/access/access.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
|
||||
<fileNamePattern>${log.path}/access/access-%i.log</fileNamePattern>
|
||||
<minIndex>1</minIndex>
|
||||
<maxIndex>1</maxIndex>
|
||||
</rollingPolicy>
|
||||
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</triggeringPolicy>
|
||||
<encoder>
|
||||
<pattern>%t{yyyy-MM-dd HH:mm:ss.SS} "%r" %s %b %D %h "%i{Referer}" "%i{User-Agent}" "%i{X-Request-ID}" "%i{X-Forwarded-For}"</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
<appender-ref ref="FILE" />
|
||||
</configuration>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
|
||||
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
|
||||
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
|
||||
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
|
||||
<configuration scan="true">
|
||||
|
||||
<contextName>logback</contextName>
|
||||
|
||||
<springProperty name="APPNAME" source="spring.application.name" />
|
||||
<springProperty name="LOGMAXHISTORY" source="logging.maxhistory" />
|
||||
|
||||
<property name="log.path" value="F:/Eclipse/work//log/${APPNAME:-.}/${HOSTNAME:-.}" />
|
||||
<property name="log.maxhistory" value="${LOGMAXHISTORY:-7}" />
|
||||
<property name="log.maxfilesize" value="50MB" />
|
||||
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%15.15t] %-40.40logger{39} [%X{traceId:-},%X{spanId:-}] : %m%n" />
|
||||
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/info/info.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/info/info.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>${log.maxhistory}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>INFO</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/warn/warn.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/warn/warn.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>${log.maxhistory}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>WARN</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/error/error.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/error/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>${log.maxhistory}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>ERROR</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/debug/debug.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/debug/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>${log.maxhistory}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>DEBUG</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
|
||||
<!--慢sql输出-->
|
||||
<appender name="ABACUSSLOWSQL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/slowsql/slowsql.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/slowsql/slowsql.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<MaxHistory>30</MaxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<logger name="abacusslowsql" additivity="false" >
|
||||
<appender-ref ref="ABACUSSLOWSQL_FILE"/>
|
||||
</logger>
|
||||
|
||||
<root level="info">
|
||||
<appender-ref ref="CONSOLE" />
|
||||
<appender-ref ref="DEBUG_FILE" />
|
||||
<appender-ref ref="INFO_FILE" />
|
||||
<appender-ref ref="WARN_FILE" />
|
||||
<appender-ref ref="ERROR_FILE" />
|
||||
</root>
|
||||
|
||||
|
||||
<!--开发环境:打印控制台-->
|
||||
|
||||
</configuration>
|
||||
@@ -0,0 +1,31 @@
|
||||
##xxl-job
|
||||
xxl:
|
||||
job:
|
||||
# admin:
|
||||
### 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册; http://localhost:9900/xxl-job-admin
|
||||
# addresses: http://localhost:9900
|
||||
# addresses: http://192.168.2.130:9900
|
||||
executor:
|
||||
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
|
||||
# appname: example-test
|
||||
### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
|
||||
# address:
|
||||
### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
|
||||
# ip:
|
||||
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
|
||||
### 使用产品
|
||||
appname: example
|
||||
### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
|
||||
#因为使用docker部署,为了方便docker镜像映射,发布时固定使用“9001”作为定时任务执行器端口
|
||||
port: 9061
|
||||
### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
|
||||
logretentiondays: 7
|
||||
### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
|
||||
logpath: D:\apps\file\work\log\xxljob\
|
||||
### 执行器通讯TOKEN [选填]:非空时启用;
|
||||
# accessToken:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
server:
|
||||
port: 9000
|
||||
max-http-header-size: 20480
|
||||
servlet:
|
||||
session:
|
||||
timeout: PT4H
|
||||
|
||||
|
||||
spring:
|
||||
data:
|
||||
jpa:
|
||||
repositories:
|
||||
bootstrap-mode: lazy #jpa延迟启动
|
||||
main:
|
||||
lazy-initialization: true #bean延迟启动
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 50MB #上传文件的大小限定
|
||||
max-request-size: 50MB #上传请求数据的大小限定,限定请求的总数据大小
|
||||
profiles:
|
||||
active: xxljob
|
||||
datasource:
|
||||
druid:
|
||||
#如果连接泄露,是否需要回收泄露的连接,默认false
|
||||
removeAbandoned: true
|
||||
#如果回收了泄露的连接,是否要打印一条log,默认false
|
||||
logAbandoned: true
|
||||
#连接回收的超时时间,默认5分钟
|
||||
#removeAbandonedTimeout: 10
|
||||
#查询超时时间(单位:秒)
|
||||
query-timeout: 300
|
||||
#事务查询超时时间(单位:秒),如果小于或等于0,则取query-timeout配置
|
||||
#transaction-query-timeout: 5
|
||||
# 配置初始化大小、最小、最大
|
||||
initial-size: 5
|
||||
minIdle: 10
|
||||
max-active: 30
|
||||
# 配置获取连接等待超时的时间(单位:毫秒)
|
||||
max-wait: 60000
|
||||
|
||||
# acas系统编码
|
||||
acas:
|
||||
current:
|
||||
number: example
|
||||
|
||||
|
||||
#在线接口文档扫描类路径
|
||||
springdoc:
|
||||
packages-to-scan:
|
||||
- abacus.springboot.example.springdoc
|
||||
paths-to-match:
|
||||
|
||||
|
||||
abacus:
|
||||
#在线数据字典扫描类路径
|
||||
entitypackages:
|
||||
- abacus.springboot.example
|
||||
#本系统Controller扫描类路径
|
||||
controllerPackages:
|
||||
- abacus.springboot.example
|
||||
#以下uri将不被统一响应体拦截包装器进行包装
|
||||
responseExcludePath:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
spring:
|
||||
application:
|
||||
name: example
|
||||
cloud:
|
||||
nacos:
|
||||
username: v10dev
|
||||
password: Abacus2022
|
||||
config:
|
||||
server-addr: 192.168.2.130:8848
|
||||
namespace: 3d18c67a-d086-4c16-b377-a633c487eafb
|
||||
file-extension: yml
|
||||
group: DEFAULT_GROUP
|
||||
extension-configs:
|
||||
- data-id: abacus-database.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-discovery.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-acas.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-redis.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-actuator.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-xxljob.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!-- always a good activate OnConsoleStatusListener -->
|
||||
<statusListener
|
||||
class="ch.qos.logback.core.status.OnConsoleStatusListener" />
|
||||
|
||||
<springProperty name="LOGPATH" source="logging.path" />
|
||||
<springProperty name="APPNAME" source="spring.application.name" />
|
||||
|
||||
<property name="log.path" value="/apps/log/${APPNAME:-.}/${HOSTNAME:-.}" />
|
||||
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/access/access.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
|
||||
<fileNamePattern>${log.path}/access/access-%i.log</fileNamePattern>
|
||||
<minIndex>1</minIndex>
|
||||
<maxIndex>1</maxIndex>
|
||||
</rollingPolicy>
|
||||
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
</triggeringPolicy>
|
||||
<encoder>
|
||||
<pattern>%t{yyyy-MM-dd HH:mm:ss.SSS} "%r" %s %b %D %h "%i{Referer}" "%i{User-Agent}" "%i{X-Request-ID}" "%i{X-Forwarded-For}" "%i{commonParam}" </pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
<appender-ref ref="FILE" />
|
||||
</configuration>
|
||||
@@ -0,0 +1,168 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
|
||||
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
|
||||
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
|
||||
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
|
||||
<configuration scan="true">
|
||||
|
||||
<contextName>logback</contextName>
|
||||
|
||||
<springProperty name="APPNAME" source="spring.application.name" />
|
||||
<springProperty name="LOGMAXHISTORY" source="logging.maxhistory" />
|
||||
<conversionRule conversionWord="menu" converterClass="abacus.commons.log.MenuConverter" />
|
||||
<conversionRule conversionWord="module" converterClass="abacus.commons.log.ModuleConverter" />
|
||||
<conversionRule conversionWord="rid" converterClass="abacus.commons.log.RequestIdConverter" />
|
||||
|
||||
|
||||
<property name="log.path" value="/apps/log/${APPNAME:-.}/${HOSTNAME:-.}" />
|
||||
<property name="log.maxhistory" value="${LOGMAXHISTORY:-365}" />
|
||||
<property name="log.maxfilesize" value="100MB" />
|
||||
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%15.15t] %-40.40logger{39} [%rid,%X{traceId:-},%X{spanId:-}] [%menu,%module] : %m%n" />
|
||||
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/info/info.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/info/info.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>${log.maxhistory}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>INFO</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/warn/warn.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/warn/warn.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>${log.maxhistory}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>WARN</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/error/error.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/error/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>${log.maxhistory}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>ERROR</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/debug/debug.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/debug/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>${log.maxhistory}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>DEBUG</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
|
||||
<!--慢sql输出-->
|
||||
<appender name="ABACUSSLOWSQL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/slowsql/slowsql.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/slowsql/slowsql.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<MaxHistory>30</MaxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
<logger name="abacusslowsql" additivity="false" >
|
||||
<appender-ref ref="CONSOLE" />
|
||||
<appender-ref ref="ABACUSSLOWSQL_FILE"/>
|
||||
</logger>
|
||||
|
||||
<!--请求外部日志输出-->
|
||||
<appender name="EXTERNALREQUESTLOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/resttemplate/resttemplate.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/resttemplate/resttemplate.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<MaxHistory>30</MaxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<logger name="externalrequestlog" additivity="false" >
|
||||
<appender-ref ref="CONSOLE" />
|
||||
<appender-ref ref="EXTERNALREQUESTLOG_FILE"/>
|
||||
</logger>
|
||||
|
||||
|
||||
|
||||
|
||||
<root level="info">
|
||||
<appender-ref ref="CONSOLE" />
|
||||
<appender-ref ref="DEBUG_FILE" />
|
||||
<appender-ref ref="INFO_FILE" />
|
||||
<appender-ref ref="WARN_FILE" />
|
||||
<appender-ref ref="ERROR_FILE" />
|
||||
</root>
|
||||
|
||||
|
||||
<!--开发环境:打印控制台-->
|
||||
|
||||
</configuration>
|
||||
@@ -0,0 +1,17 @@
|
||||
##xxl-job
|
||||
xxl:
|
||||
job:
|
||||
executor:
|
||||
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
|
||||
### 使用产品
|
||||
appname: example
|
||||
### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
|
||||
#因为使用docker部署,为了方便docker镜像映射,发布时固定使用“9001”作为定时任务执行器端口
|
||||
port: 9001
|
||||
### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
|
||||
logretentiondays: 7
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
server:
|
||||
port: 9000
|
||||
spring:
|
||||
jackson:
|
||||
date-format: yyyy-MM-dd HH:mm:ss
|
||||
time-zone: GMT+8
|
||||
profiles:
|
||||
active: xxljob
|
||||
jpa:
|
||||
show-sql: false
|
||||
datasource:
|
||||
druid:
|
||||
#如果连接泄露,是否需要回收泄露的连接,默认false
|
||||
removeAbandoned: true
|
||||
#如果回收了泄露的连接,是否要打印一条log,默认false
|
||||
logAbandoned: true
|
||||
#连接回收的超时时间,默认5分钟
|
||||
#removeAbandonedTimeout: 10
|
||||
#查询超时时间(单位:秒)
|
||||
query-timeout: 300
|
||||
#事务查询超时时间(单位:秒),如果小于或等于0,则取query-timeout配置
|
||||
#transaction-query-timeout: 5
|
||||
# 配置初始化大小、最小、最大
|
||||
initial-size: 5
|
||||
minIdle: 10
|
||||
max-active: 30
|
||||
# 配置获取连接等待超时的时间(单位:毫秒)
|
||||
max-wait: 60000
|
||||
|
||||
acas:
|
||||
current:
|
||||
number: example
|
||||
|
||||
springdoc:
|
||||
packages-to-scan:
|
||||
- abacus.springboot.example.api
|
||||
paths-to-match:
|
||||
|
||||
abacus:
|
||||
entitypackages:
|
||||
- abacus.springboot.example
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
spring:
|
||||
application:
|
||||
name: example
|
||||
cloud:
|
||||
nacos:
|
||||
username: v10dev
|
||||
password: Abacus2022
|
||||
config:
|
||||
server-addr: v10sys.abacus.private:8848
|
||||
namespace: 3d18c67a-d086-4c16-b377-a633c487eafb
|
||||
file-extension: yml
|
||||
group: DEFAULT_GROUP
|
||||
extension-configs:
|
||||
- data-id: abacus-database.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-discovery.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-acas.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-redis.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-actuator.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
- data-id: abacus-xxljob.yml
|
||||
group: COMMON_GROUP
|
||||
refresh: false
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!-- always a good activate OnConsoleStatusListener -->
|
||||
<statusListener
|
||||
class="ch.qos.logback.core.status.OnConsoleStatusListener" />
|
||||
|
||||
<springProperty name="LOGPATH" source="logging.path" />
|
||||
<springProperty name="APPNAME" source="spring.application.name" />
|
||||
|
||||
<property name="log.path" value="/apps/log/${APPNAME:-.}/${HOSTNAME:-.}" />
|
||||
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/access/access.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
|
||||
<fileNamePattern>${log.path}/access/access-%i.log</fileNamePattern>
|
||||
<minIndex>1</minIndex>
|
||||
<maxIndex>1</maxIndex>
|
||||
</rollingPolicy>
|
||||
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</triggeringPolicy>
|
||||
<encoder>
|
||||
<pattern>%t{yyyy-MM-dd HH:mm:ss.SSS} "%r" %s %b %D %h "%i{Referer}" "%i{User-Agent}" "%i{X-Request-ID}" "%i{X-Forwarded-For}" "%i{commonParam}" </pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
<appender-ref ref="FILE" />
|
||||
</configuration>
|
||||
@@ -0,0 +1,168 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
|
||||
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
|
||||
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
|
||||
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
|
||||
<configuration scan="true">
|
||||
|
||||
<contextName>logback</contextName>
|
||||
|
||||
<springProperty name="APPNAME" source="spring.application.name" />
|
||||
<springProperty name="LOGMAXHISTORY" source="logging.maxhistory" />
|
||||
<conversionRule conversionWord="menu" converterClass="abacus.commons.log.MenuConverter" />
|
||||
<conversionRule conversionWord="module" converterClass="abacus.commons.log.ModuleConverter" />
|
||||
<conversionRule conversionWord="rid" converterClass="abacus.commons.log.RequestIdConverter" />
|
||||
|
||||
|
||||
<property name="log.path" value="/apps/log/${APPNAME:-.}/${HOSTNAME:-.}" />
|
||||
<property name="log.maxhistory" value="${LOGMAXHISTORY:-7}" />
|
||||
<property name="log.maxfilesize" value="50MB" />
|
||||
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%15.15t] %-40.40logger{39} [%rid,%X{traceId:-},%X{spanId:-}] [%menu,%module] : %m%n" />
|
||||
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/info/info.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/info/info.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>${log.maxhistory}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>INFO</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/warn/warn.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/warn/warn.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>${log.maxhistory}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>WARN</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/error/error.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/error/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>${log.maxhistory}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>ERROR</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/debug/debug.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/debug/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>${log.maxhistory}</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>DEBUG</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
|
||||
<!--慢sql输出-->
|
||||
<appender name="ABACUSSLOWSQL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/slowsql/slowsql.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/slowsql/slowsql.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<MaxHistory>30</MaxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
<logger name="abacusslowsql" additivity="false" >
|
||||
<appender-ref ref="CONSOLE" />
|
||||
<appender-ref ref="ABACUSSLOWSQL_FILE"/>
|
||||
</logger>
|
||||
|
||||
<!--请求外部日志输出-->
|
||||
<appender name="EXTERNALREQUESTLOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/resttemplate/resttemplate.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/resttemplate/resttemplate.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>${log.maxfilesize}</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<MaxHistory>30</MaxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<logger name="externalrequestlog" additivity="false" >
|
||||
<appender-ref ref="CONSOLE" />
|
||||
<appender-ref ref="EXTERNALREQUESTLOG_FILE"/>
|
||||
</logger>
|
||||
|
||||
|
||||
|
||||
|
||||
<root level="info">
|
||||
<appender-ref ref="CONSOLE" />
|
||||
<appender-ref ref="DEBUG_FILE" />
|
||||
<appender-ref ref="INFO_FILE" />
|
||||
<appender-ref ref="WARN_FILE" />
|
||||
<appender-ref ref="ERROR_FILE" />
|
||||
</root>
|
||||
|
||||
|
||||
<!--开发环境:打印控制台-->
|
||||
|
||||
</configuration>
|
||||
@@ -0,0 +1,16 @@
|
||||
# 子系统中文名称(负责人姓名)
|
||||
|
||||
## 1.0.1(2024-04-12)
|
||||
**依赖子系统**
|
||||
**前置条件**
|
||||
**更新说明**
|
||||
- 2026-08-18 M2 示例净化(示范即正确):D1 `JcBillAccess` 原生 SQL 全量参数化(86 处 `?` 占位符,0 处字符串拼参);D2 `JcBillController` 业务编排下沉至新建 `esb/JcBillBizService`(含 `saveJcBill`/`updateJcbill`/`hgAnalyze` 等 5 方法),并移除死代码 `jcAnalyze`;D3 包名 `repositroy`→`repository`(含 7 个接口文件名重命名)。详见 `docs/log/2026-08-18-m2-example-purify.md`。
|
||||
|
||||
## 1.0.2(2026-08-19)
|
||||
**依赖子系统**
|
||||
**前置条件**
|
||||
**更新说明**
|
||||
- 治理体系落地(ADS Retrofit):新增 `.project.agents/`(CLAUDE/AGENTS/SELF_CONSTRAINTS/VIBECODING_GUIDE/settings + context 四文档),前后端共享约束单源化于工作区 `docs/`(`coding-standards.md`/`architecture.md`/`agent-guide.md`),本仓库文档以指针引用。
|
||||
- 分层约定与 `docs/coding-standards.md` 对齐(api/controller/dao/esb/pi/impl/repository/wsi/config/util/vo);`util`、`vo` 包冻结(既有兼容、新增禁止)。
|
||||
- 工作区纳入单一 git 仓库(`D:\workBuddySpace\member`)。
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- 配置说明: 节点<abacus> 属性[id],系统唯一标识 数据库语法翻译器属性[translator],配置为“false”,则不开启对各个数据库的翻译功能,不配置或配置其他值默认为“true”;
|
||||
当[translator]为true时,升级sql使用mssqlserver数据库的语法进行配置;列如,ERP的各个系统,需要满足不同数据库的部署需求;
|
||||
当[translator]为false时,升级sql使用那种数据库语法由开发者自己指定;例如,云商城相关各个系统,直接使用MySQL语法进行配置;
|
||||
<abacus translator="true"> 节点<upgrade>,配置每个版本的升级sql,版本属性[version],值格式“yyyy-MM-dd”或"yyyy-MM-dd.count",
|
||||
count代表次数,如日期相同,则对比次数 <upgrade id="example" version="2022-03-03"> 节点<sql>,配置该版本需要执行的sql,每条sql使用符号“;”分隔
|
||||
<sql></sql> 以下为可选配置,并且晚于节点<sql>中的sql执行: 节点<oracle>,指定oracle数据库专用sql,例如有oracle专用关键字的sql
|
||||
<oracle></oracle> 节点<sybase>,指定sybase数据库专用sql,例如有sybase专用关键字的sql <sybase></sybase>
|
||||
节点<mysql>,指定mysql数据库专用sql,例如有mysql专用关键字的sql <mysql></mysql> </upgrade> </abacus>
|
||||
注意事项: 1、应用第一次部署时,以当天日期作为初始版本 2、当一次升级有多个版本升级sql需要执行时,会以version值升序排序,从上到下执行
|
||||
3、更新sql尽量配置产品功能升级的常规sql,例如建表、新增字段等等。 需要大量调整数据的sql、带有逻辑调整数据的sql、使用了列存储索引的表,单独联系项目人员执行。
|
||||
4、不建议建表或者新增字段时使用“default”默认一个值,mssqlserver删除或者修改字段时,会因为DF约束执行失败,最好由程序指定默认值
|
||||
5、自增关键字identity固定放在字段类型后面,否则在sybase数据库会执行失败 6、翻译器现支持mssqlserver转mysql、oracle、sybase的部分语法,具体语法参考语法测试用例 -->
|
||||
<abacus id="example" translator="true">
|
||||
<upgrade version="2026-08-18.2">
|
||||
<sql>
|
||||
-- 稽查主单
|
||||
create table jc_bill (
|
||||
id varchar(20) not null,
|
||||
version int not null,
|
||||
status int default (1) null,
|
||||
goods varchar(120) null,
|
||||
warehouse varchar(20) null,
|
||||
warehousename varchar(120) null,
|
||||
receivedt varchar(10) null,
|
||||
quantity decimal(30,8) null,
|
||||
subtotal decimal(30,2) null,
|
||||
billin varchar(20) null,
|
||||
billindt datetime null,
|
||||
applicant varchar(20) null,
|
||||
applicantname varchar(120) null,
|
||||
applicantdt datetime null,
|
||||
dt datetime default current_timestamp not null,
|
||||
constraint pk_jc_bill primary key (id)
|
||||
);
|
||||
create index jc_bill_search on jc_bill(id, applicant, status, goods,
|
||||
applicantdt, dt);
|
||||
create index jc_bill_id on jc_bill(id, goods, dt);
|
||||
create index jc_bill_dt on jc_bill(dt);
|
||||
|
||||
-- 稽查明细
|
||||
create table jc_billsource_item (
|
||||
id bigint auto_increment not null primary key, -- 自增长编码
|
||||
version int not null,
|
||||
indexno int null,
|
||||
billid varchar(20) not null,
|
||||
status int default (1) null,
|
||||
recsource varchar(20) null,
|
||||
recplatform varchar(20) null,
|
||||
channel varchar(60) null,
|
||||
price decimal(30,8) null,
|
||||
quantity decimal(30,8) null,
|
||||
numbers decimal(30,8) null,
|
||||
subtotal decimal(30,2) null,
|
||||
goodsid varchar(20) null,
|
||||
logisticsid varchar(60) null,
|
||||
billout varchar(600) null,
|
||||
billoutdt datetime null,
|
||||
billoutwh varchar(20) null,
|
||||
billoutwhname varchar(60) null,
|
||||
product varchar(20) null,
|
||||
productname varchar(200) null,
|
||||
account varchar(20) null,
|
||||
accountname varchar(200) null,
|
||||
operator varchar(20) null,
|
||||
operatorname varchar(60) null,
|
||||
groupid varchar(20) null,
|
||||
groupname varchar(60) null,
|
||||
salearea varchar(20) null,
|
||||
saleareaname varchar(60) null,
|
||||
source varchar(20) null,
|
||||
reason varchar(300) null,
|
||||
dt datetime default current_timestamp not null
|
||||
);
|
||||
create index jc_billsource_item_billid on jc_billsource_item(billid);
|
||||
|
||||
-- 溯源明细
|
||||
create table jc_source_item (
|
||||
id bigint auto_increment not null primary key, -- 自增长编码
|
||||
version int not null,
|
||||
billid varchar(20) not null,
|
||||
srcitemid varchar(20) not null,
|
||||
status int default (0) null,
|
||||
goodsid varchar(20) null,
|
||||
logisticsid varchar(60) null,
|
||||
billout varchar(20) null,
|
||||
billoutdt datetime null,
|
||||
billoutwh varchar(20) null,
|
||||
billoutwhname varchar(60) null,
|
||||
product varchar(20) null,
|
||||
productname varchar(200) null,
|
||||
account varchar(20) null,
|
||||
accountname varchar(200) null,
|
||||
operator varchar(20) null,
|
||||
operatorname varchar(60) null,
|
||||
groupid varchar(20) null,
|
||||
groupname varchar(60) null,
|
||||
salearea varchar(20) null,
|
||||
saleareaname varchar(60) null,
|
||||
source varchar(20) null,
|
||||
dt datetime default current_timestamp not null
|
||||
);
|
||||
create index jc_source_item_billid on jc_source_item(billid, source,
|
||||
srcitemid);
|
||||
create index jc_source_item_billid_status on jc_source_item(billid,
|
||||
srcitemid, status);
|
||||
|
||||
-- 稽查入库(回购通知)明细(对溯源信息汇总的入库信息-待生成回购)
|
||||
create table jc_billin_item (
|
||||
id bigint auto_increment not null primary key, -- 自增长编码
|
||||
version int not null,
|
||||
billid varchar(20) not null,
|
||||
billin varchar(20) null,
|
||||
billhg varchar(20) null,
|
||||
status int default (1) null,
|
||||
channel varchar(60) null,
|
||||
account varchar(20) null,
|
||||
accountname varchar(200) null,
|
||||
product varchar(20) null,
|
||||
productname varchar(200) null,
|
||||
price decimal(30,8) null,
|
||||
quantity decimal(30,8) null,
|
||||
numbers decimal(30,8) null,
|
||||
hgprice decimal(30,8) null,
|
||||
hgamount decimal(30,2) null,
|
||||
operator varchar(20) null,
|
||||
operatorname varchar(60) null,
|
||||
groupid varchar(20) null,
|
||||
groupname varchar(60) null,
|
||||
salearea varchar(20) null,
|
||||
saleareaname varchar(60) null,
|
||||
fhquantity decimal(30,8) null,
|
||||
fhnumbers decimal(30,8) null,
|
||||
fhwarehouse varchar(20) null,
|
||||
fhwarehousename varchar(120) null,
|
||||
wdtorder varchar(20) null,
|
||||
wdtbillout varchar(20) null,
|
||||
wdtbillouttyp varchar(20) null,
|
||||
wdtdt datetime null,
|
||||
dt datetime default current_timestamp not null
|
||||
);
|
||||
create index jc_billin_item_billid on jc_billin_item(billhg, billid,
|
||||
billin);
|
||||
create index jc_billin_item_status on jc_billin_item(status);
|
||||
|
||||
-- 回购单-主单
|
||||
create table jc_billhg (
|
||||
id varchar(20) not null,
|
||||
version int not null,
|
||||
billid varchar(20) not null,
|
||||
status int default (1) null,
|
||||
source varchar(20) null,
|
||||
account varchar(20) null,
|
||||
accountname varchar(200) null,
|
||||
quantity decimal(30,8) null,
|
||||
subtotal decimal(30,2) null,
|
||||
freight decimal(30,2) null,
|
||||
manager varchar(20) null,
|
||||
managername varchar(60) null,
|
||||
consignee varchar(20) null,
|
||||
consigneephone varchar(30) null,
|
||||
province varchar(10) null,
|
||||
provincename varchar(60) null,
|
||||
city varchar(10) null,
|
||||
cityname varchar(60) null,
|
||||
area varchar(10) null,
|
||||
areaname varchar(60) null,
|
||||
address varchar(300) null,
|
||||
receiveway varchar(20) null,
|
||||
remark varchar(300) null,
|
||||
remark1 varchar(300) null,
|
||||
salearea varchar(20) null,
|
||||
saleareaname varchar(60) null,
|
||||
groupid varchar(20) null,
|
||||
groupname varchar(60) null,
|
||||
fhwarehouse varchar(20) null,
|
||||
fhwarehousename varchar(120) null,
|
||||
wdtorder varchar(20) null,
|
||||
wdtbillout varchar(20) null,
|
||||
wdtbillouttyp varchar(20) null,
|
||||
wdtdt datetime null,
|
||||
logisticsname varchar(60) null,
|
||||
logisticscode varchar(60) null,
|
||||
logisticstype varchar(60) null,
|
||||
logisticsno varchar(20) null,
|
||||
found varchar(20) null,
|
||||
foundname varchar(60) null,
|
||||
founddt datetime null,
|
||||
submit varchar(20) null,
|
||||
submitname varchar(60) null,
|
||||
submitdt datetime null,
|
||||
audit varchar(20) null,
|
||||
auditname varchar(60) null,
|
||||
auditdt datetime null,
|
||||
dt datetime default current_timestamp not null,
|
||||
constraint pk_jc_billhg primary key (id)
|
||||
);
|
||||
create index jc_billhg_founddt on jc_billhg(founddt, account, salearea,
|
||||
billid, status, manager);
|
||||
create index jc_billhg_billid on jc_billhg(billid);
|
||||
create index jc_billhg_status_founddt on jc_billhg(status, founddt);
|
||||
create index jc_billhg_consigneephone on jc_billhg(consigneephone, account,
|
||||
accountname);
|
||||
create index jc_billhg_dt on jc_billhg(dt);
|
||||
|
||||
-- 回购单-支付明细
|
||||
create table jc_billhg_pay (
|
||||
id bigint auto_increment not null primary key, -- 自增长编码
|
||||
version int not null,
|
||||
billid varchar(20) not null,
|
||||
billhg varchar(20) not null,
|
||||
payment varchar(20) not null,
|
||||
amount decimal(30,2) null,
|
||||
zhmc varchar(20) not null,
|
||||
khyh varchar(150) not null,
|
||||
yhzh varchar(60) not null,
|
||||
dt datetime default current_timestamp not null
|
||||
);
|
||||
create index jc_billhg_pay_billhg on jc_billhg_pay(billhg, payment);
|
||||
create index jc_billhg_pay_billid on jc_billhg_pay(billid);
|
||||
create index jc_billhg_pay_dt on jc_billhg_pay(dt);
|
||||
|
||||
-- 图片
|
||||
create table jc_bill_photo (
|
||||
id bigint auto_increment not null primary key, -- 自增长编码
|
||||
version int not null,
|
||||
srcid varchar(20) not null,
|
||||
srcitemid varchar(20) not null,
|
||||
typephoto varchar(30) not null,
|
||||
urlphoto varchar(200) not null,
|
||||
dt datetime default current_timestamp not null
|
||||
);
|
||||
create index jc_bill_photo_srcitemid on jc_bill_photo(srcid, srcitemid,
|
||||
typephoto);
|
||||
create index jc_bill_photo_srcid on jc_bill_photo(srcid, typephoto);
|
||||
|
||||
-- 2025-03-14
|
||||
alter table jc_billhg add column proofaccountname varchar(150) null;
|
||||
alter table jc_billhg add column proofdt datetime null;
|
||||
alter table jc_bill add column hgstatus int default 0 null;
|
||||
|
||||
-- 2025-01-22(alter column 改为 modify column)
|
||||
alter table jc_billsource_item modify column billout varchar(600) null;
|
||||
|
||||
-- 2025-01-16
|
||||
alter table jc_billin_item add column wdtoutdt datetime null;
|
||||
alter table jc_billin_item add column wdtindt datetime null;
|
||||
alter table jc_billhg add column wdtoutdt datetime null;
|
||||
alter table jc_billhg add column wdtindt datetime null;
|
||||
alter table jc_billsource_item modify column logisticsid varchar(600)
|
||||
null;
|
||||
alter table jc_source_item modify column logisticsid varchar(600) null;
|
||||
|
||||
-- 2025-01-06(原文件重复出现两次,已去重)
|
||||
alter table jc_bill add column dept varchar(20) null;
|
||||
|
||||
</sql>
|
||||
</upgrade>
|
||||
</abacus>
|
||||
Reference in New Issue
Block a user