forked from sfms3.0/sfms3.0
11 changed files with 409 additions and 214 deletions
@ -1,34 +1,25 @@ |
|||||
package com.win.server; |
package com.win.server; |
||||
|
|
||||
|
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; |
||||
import org.springframework.boot.SpringApplication; |
import org.springframework.boot.SpringApplication; |
||||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; |
||||
|
|
||||
/** |
/** |
||||
* 项目的启动类 |
* 项目的启动类 |
||||
* |
* |
||||
* 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章
|
|
||||
* 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章
|
|
||||
* 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章
|
|
||||
* |
|
||||
* @author 闻荫源码 |
* @author 闻荫源码 |
||||
*/ |
*/ |
||||
@SuppressWarnings("SpringComponentScan") // 忽略 IDEA 无法识别 ${win.info.base-package}
|
@SuppressWarnings("SpringComponentScan") // 忽略 IDEA 无法识别 ${win.info.base-package}
|
||||
@SpringBootApplication(scanBasePackages = {"${win.info.base-package}.server", "${win.info.base-package}.module"}) |
@SpringBootApplication( |
||||
|
scanBasePackages = {"${win.info.base-package}.server", "${win.info.base-package}.module"}, |
||||
|
exclude = {DataSourceAutoConfiguration.class, DruidDataSourceAutoConfigure.class} |
||||
|
) |
||||
public class WinServerApplication { |
public class WinServerApplication { |
||||
|
|
||||
public static void main(String[] args) { |
public static void main(String[] args) { |
||||
// 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章
|
|
||||
// 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章
|
|
||||
// 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章
|
|
||||
|
|
||||
SpringApplication.run(WinServerApplication.class, args); |
SpringApplication.run(WinServerApplication.class, args); |
||||
// new SpringApplicationBuilder(WinServerApplication.class)
|
// new SpringApplicationBuilder(WinServerApplication.class).applicationStartup(new BufferingApplicationStartup(20480)).run(args);
|
||||
// .applicationStartup(new BufferingApplicationStartup(20480))
|
|
||||
// .run(args);
|
|
||||
|
|
||||
// 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章
|
|
||||
// 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章
|
|
||||
// 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章
|
|
||||
} |
} |
||||
|
|
||||
} |
} |
||||
|
@ -0,0 +1,47 @@ |
|||||
|
# 数据源配置 |
||||
|
spring: |
||||
|
datasource: |
||||
|
druid: |
||||
|
# 初始连接数 |
||||
|
initialSize: 20 |
||||
|
# 最小连接池数量 |
||||
|
minIdle: 20 |
||||
|
# 最大连接池数量 |
||||
|
maxActive: 200 |
||||
|
# 配置获取连接等待超时的时间 |
||||
|
maxWait: 60000 |
||||
|
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 |
||||
|
timeBetweenEvictionRunsMillis: 60000 |
||||
|
# 配置一个连接在池中最小生存的时间,单位是毫秒 |
||||
|
minEvictableIdleTimeMillis: 300000 |
||||
|
# 配置一个连接在池中最大生存的时间,单位是毫秒 |
||||
|
maxEvictableIdleTimeMillis: 900000 |
||||
|
# 配置检测连接是否有效 |
||||
|
validationQuery: SELECT 1 FROM DUAL |
||||
|
testWhileIdle: true |
||||
|
testOnBorrow: false |
||||
|
testOnReturn: false |
||||
|
webStatFilter: |
||||
|
enabled: false |
||||
|
url-pattern: /* # 过滤所有url |
||||
|
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" # 排除一些不必要的url |
||||
|
session-stat-enable: true # 开启session统计功能 |
||||
|
session-stat-max-count: 1000 # session的最大个数,默认100 |
||||
|
statViewServlet: |
||||
|
enabled: true |
||||
|
# 设置白名单,不填则允许所有访问 |
||||
|
allow: |
||||
|
url-pattern: /druid/* |
||||
|
# 控制台管理用户名和密码 |
||||
|
login-username: win |
||||
|
login-password: 123456 |
||||
|
filter: |
||||
|
stat: |
||||
|
enabled: true |
||||
|
# 慢SQL记录 |
||||
|
log-slow-sql: true |
||||
|
slow-sql-millis: 1000 |
||||
|
merge-sql: true |
||||
|
wall: |
||||
|
config: |
||||
|
multi-statement-allow: true |
@ -1,76 +1,108 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
<configuration> |
<configuration> |
||||
<!-- 引用 Spring Boot 的 logback 基础配置 --> |
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/> |
||||
<include resource="org/springframework/boot/logging/logback/defaults.xml" /> |
<!-- 日志存放路径 --> |
||||
<!-- 变量 win.info.base-package,基础业务包 --> |
<property name="log.path" value="${logPath}" /> |
||||
<springProperty scope="context" name="win.info.base-package" source="win.info.base-package"/> |
|
||||
<!-- 格式化输出:%d 表示日期,%X{tid} SkWalking 链路追踪编号,%thread 表示线程名,%-5level:级别从左显示 5 个字符宽度,%msg:日志消息,%n是换行符 --> |
|
||||
<property name="PATTERN_DEFAULT" value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} | %highlight(${LOG_LEVEL_PATTERN:-%5p} ${PID:- }) | %boldYellow(%thread [%tid]) %boldGreen(%-40.40logger{39}) | %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/> |
|
||||
|
|
||||
<!-- 控制台 Appender --> |
<!--0. 日志格式和颜色渲染 --> |
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> |
<!-- 彩色日志依赖的渲染类 --> |
||||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> |
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> |
||||
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"> |
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> |
||||
<pattern>${PATTERN_DEFAULT}</pattern> |
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> |
||||
</layout> |
<!-- 彩色日志格式 --> |
||||
|
<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}}" /> |
||||
|
<!-- 日志输出格式 --> |
||||
|
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> |
||||
|
|
||||
|
<!-- 控制台输出 --> |
||||
|
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> |
||||
|
<!-- 此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息 --> |
||||
|
<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> |
||||
|
<level>debug</level> |
||||
|
</filter> |
||||
|
<encoder> |
||||
|
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern> |
||||
|
<!-- 设置字符集 --> |
||||
|
<charset>UTF-8</charset> |
||||
</encoder> |
</encoder> |
||||
</appender> |
</appender> |
||||
|
|
||||
<!-- 文件 Appender --> |
<!-- 系统日志输出 --> |
||||
<!-- 参考 Spring Boot 的 file-appender.xml 编写 --> |
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
<file>${log.path}/sys-info.log</file> |
||||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> |
<!-- 循环政策:基于时间创建日志文件 --> |
||||
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"> |
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
||||
<pattern>${PATTERN_DEFAULT}</pattern> |
<!-- 日志文件名格式 --> |
||||
</layout> |
<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern> |
||||
</encoder> |
<!-- 日志最大的历史 60天 --> |
||||
<!-- 日志文件名 --> |
<maxHistory>60</maxHistory> |
||||
<file>${LOG_FILE}</file> |
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> |
|
||||
<!-- 滚动后的日志文件名 --> |
|
||||
<fileNamePattern>${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz}</fileNamePattern> |
|
||||
<!-- 启动服务时,是否清理历史日志,一般不建议清理 --> |
|
||||
<cleanHistoryOnStart>${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart> |
|
||||
<!-- 日志文件,到达多少容量,进行滚动 --> |
|
||||
<maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}</maxFileSize> |
|
||||
<!-- 日志文件的总大小,0 表示不限制 --> |
|
||||
<totalSizeCap>${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0}</totalSizeCap> |
|
||||
<!-- 日志文件的保留天数 --> |
|
||||
<maxHistory>${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30}</maxHistory> |
|
||||
</rollingPolicy> |
</rollingPolicy> |
||||
|
<encoder> |
||||
|
<pattern>${log.pattern}</pattern> |
||||
|
</encoder> |
||||
|
<filter class="ch.qos.logback.classic.filter.LevelFilter"> |
||||
|
<!-- 过滤的级别 --> |
||||
|
<level>INFO</level> |
||||
|
<!-- 匹配时的操作:接收(记录) --> |
||||
|
<onMatch>ACCEPT</onMatch> |
||||
|
<!-- 不匹配时的操作:拒绝(不记录) --> |
||||
|
<onMismatch>DENY</onMismatch> |
||||
|
</filter> |
||||
</appender> |
</appender> |
||||
<!-- 异步写入日志,提升性能 --> |
|
||||
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> |
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
||||
<!-- 不丢失日志。默认的,如果队列的 80% 已满,则会丢弃 TRACT、DEBUG、INFO 级别的日志 --> |
<file>${log.path}/sys-error.log</file> |
||||
<discardingThreshold>0</discardingThreshold> |
<!-- 循环政策:基于时间创建日志文件 --> |
||||
<!-- 更改默认的队列的深度,该值会影响性能。默认值为 256 --> |
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
||||
<queueSize>256</queueSize> |
<!-- 日志文件名格式 --> |
||||
<appender-ref ref="FILE"/> |
<fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern> |
||||
|
<!-- 日志最大的历史 60天 --> |
||||
|
<maxHistory>60</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> |
</appender> |
||||
|
|
||||
<!-- SkyWalking GRPC 日志收集,实现日志中心。注意:SkyWalking 8.4.0 版本开始支持 --> |
<!-- 用户访问日志输出 --> |
||||
<appender name="GRPC" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender"> |
<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
||||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> |
<file>${log.path}/sys-user.log</file> |
||||
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"> |
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
||||
<pattern>${PATTERN_DEFAULT}</pattern> |
<!-- 按天回滚 daily --> |
||||
</layout> |
<fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern> |
||||
|
<!-- 日志最大的历史 60天 --> |
||||
|
<maxHistory>60</maxHistory> |
||||
|
</rollingPolicy> |
||||
|
<encoder> |
||||
|
<pattern>${log.pattern}</pattern> |
||||
</encoder> |
</encoder> |
||||
</appender> |
</appender> |
||||
|
|
||||
<!-- 本地环境 --> |
<!-- 系统模块日志级别控制 --> |
||||
<springProfile name="local"> |
<logger name="com.hc" level="info" /> |
||||
<root level="INFO"> |
<!-- Spring日志级别控制 --> |
||||
<appender-ref ref="STDOUT"/> |
<logger name="org.springframework" level="warn" /> |
||||
<appender-ref ref="GRPC"/> <!-- 本地环境下,如果不想接入 SkyWalking 日志服务,可以注释掉本行 --> |
|
||||
<appender-ref ref="ASYNC"/> <!-- 本地环境下,如果不想打印日志,可以注释掉本行 --> |
<root level="error"> |
||||
</root> |
<appender-ref ref="console" /> |
||||
</springProfile> |
</root> |
||||
<!-- 其它环境 --> |
|
||||
<springProfile name="dev,test,stage,prod,default"> |
<!--系统操作日志--> |
||||
<root level="INFO"> |
<root level="info"> |
||||
<appender-ref ref="STDOUT"/> |
<appender-ref ref="file_info" /> |
||||
<appender-ref ref="ASYNC"/> |
<appender-ref ref="file_error" /> |
||||
<appender-ref ref="GRPC"/> |
</root> |
||||
</root> |
|
||||
</springProfile> |
|
||||
|
|
||||
|
<!--系统用户操作日志--> |
||||
|
<logger name="sys-user" level="info"> |
||||
|
<appender-ref ref="sys-user"/> |
||||
|
</logger> |
||||
</configuration> |
</configuration> |
Loading…
Reference in new issue