forked from sfms3.0/sfms3.0
11 changed files with 409 additions and 214 deletions
@ -1,34 +1,25 @@ |
|||
package com.win.server; |
|||
|
|||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; |
|||
import org.springframework.boot.SpringApplication; |
|||
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 闻荫源码 |
|||
*/ |
|||
@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 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); |
|||
// new SpringApplicationBuilder(WinServerApplication.class)
|
|||
// .applicationStartup(new BufferingApplicationStartup(20480))
|
|||
// .run(args);
|
|||
|
|||
// 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章
|
|||
// 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章
|
|||
// 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章
|
|||
// new SpringApplicationBuilder(WinServerApplication.class).applicationStartup(new BufferingApplicationStartup(20480)).run(args);
|
|||
} |
|||
|
|||
} |
|||
|
@ -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> |
|||
<!-- 引用 Spring Boot 的 logback 基础配置 --> |
|||
<include resource="org/springframework/boot/logging/logback/defaults.xml" /> |
|||
<!-- 变量 win.info.base-package,基础业务包 --> |
|||
<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}"/> |
|||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/> |
|||
<!-- 日志存放路径 --> |
|||
<property name="log.path" value="${logPath}" /> |
|||
|
|||
<!-- 控制台 Appender --> |
|||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> |
|||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> |
|||
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"> |
|||
<pattern>${PATTERN_DEFAULT}</pattern> |
|||
</layout> |
|||
<!--0. 日志格式和颜色渲染 --> |
|||
<!-- 彩色日志依赖的渲染类 --> |
|||
<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}}" /> |
|||
<!-- 日志输出格式 --> |
|||
<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> |
|||
</appender> |
|||
|
|||
<!-- 文件 Appender --> |
|||
<!-- 参考 Spring Boot 的 file-appender.xml 编写 --> |
|||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
|||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> |
|||
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"> |
|||
<pattern>${PATTERN_DEFAULT}</pattern> |
|||
</layout> |
|||
</encoder> |
|||
<!-- 日志文件名 --> |
|||
<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> |
|||
<!-- 系统日志输出 --> |
|||
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
|||
<file>${log.path}/sys-info.log</file> |
|||
<!-- 循环政策:基于时间创建日志文件 --> |
|||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
|||
<!-- 日志文件名格式 --> |
|||
<fileNamePattern>${log.path}/sys-info.%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>INFO</level> |
|||
<!-- 匹配时的操作:接收(记录) --> |
|||
<onMatch>ACCEPT</onMatch> |
|||
<!-- 不匹配时的操作:拒绝(不记录) --> |
|||
<onMismatch>DENY</onMismatch> |
|||
</filter> |
|||
</appender> |
|||
<!-- 异步写入日志,提升性能 --> |
|||
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> |
|||
<!-- 不丢失日志。默认的,如果队列的 80% 已满,则会丢弃 TRACT、DEBUG、INFO 级别的日志 --> |
|||
<discardingThreshold>0</discardingThreshold> |
|||
<!-- 更改默认的队列的深度,该值会影响性能。默认值为 256 --> |
|||
<queueSize>256</queueSize> |
|||
<appender-ref ref="FILE"/> |
|||
|
|||
<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>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> |
|||
|
|||
<!-- SkyWalking GRPC 日志收集,实现日志中心。注意:SkyWalking 8.4.0 版本开始支持 --> |
|||
<appender name="GRPC" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender"> |
|||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> |
|||
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"> |
|||
<pattern>${PATTERN_DEFAULT}</pattern> |
|||
</layout> |
|||
<!-- 用户访问日志输出 --> |
|||
<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
|||
<file>${log.path}/sys-user.log</file> |
|||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
|||
<!-- 按天回滚 daily --> |
|||
<fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern> |
|||
<!-- 日志最大的历史 60天 --> |
|||
<maxHistory>60</maxHistory> |
|||
</rollingPolicy> |
|||
<encoder> |
|||
<pattern>${log.pattern}</pattern> |
|||
</encoder> |
|||
</appender> |
|||
|
|||
<!-- 本地环境 --> |
|||
<springProfile name="local"> |
|||
<root level="INFO"> |
|||
<appender-ref ref="STDOUT"/> |
|||
<appender-ref ref="GRPC"/> <!-- 本地环境下,如果不想接入 SkyWalking 日志服务,可以注释掉本行 --> |
|||
<appender-ref ref="ASYNC"/> <!-- 本地环境下,如果不想打印日志,可以注释掉本行 --> |
|||
</root> |
|||
</springProfile> |
|||
<!-- 其它环境 --> |
|||
<springProfile name="dev,test,stage,prod,default"> |
|||
<root level="INFO"> |
|||
<appender-ref ref="STDOUT"/> |
|||
<appender-ref ref="ASYNC"/> |
|||
<appender-ref ref="GRPC"/> |
|||
</root> |
|||
</springProfile> |
|||
<!-- 系统模块日志级别控制 --> |
|||
<logger name="com.hc" level="info" /> |
|||
<!-- Spring日志级别控制 --> |
|||
<logger name="org.springframework" level="warn" /> |
|||
|
|||
<root level="error"> |
|||
<appender-ref ref="console" /> |
|||
</root> |
|||
|
|||
<!--系统操作日志--> |
|||
<root level="info"> |
|||
<appender-ref ref="file_info" /> |
|||
<appender-ref ref="file_error" /> |
|||
</root> |
|||
|
|||
</configuration> |
|||
<!--系统用户操作日志--> |
|||
<logger name="sys-user" level="info"> |
|||
<appender-ref ref="sys-user"/> |
|||
</logger> |
|||
</configuration> |
Loading…
Reference in new issue