7.11 frp部署与使用示例编写
This commit is contained in:
commit
51022e39dc
40
.gitignore
vendored
Normal file
40
.gitignore
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
!**/src/main/**/target/
|
||||
!**/src/test/**/target/
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea/modules.xml
|
||||
.idea/jarRepositories.xml
|
||||
.idea/compiler.xml
|
||||
.idea/libraries/
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
### Eclipse ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
build/
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Mac OS ###
|
||||
.DS_Store
|
||||
/data/
|
||||
/.idea/
|
29
docs/dev-ops/frpc/config/frpc.toml
Normal file
29
docs/dev-ops/frpc/config/frpc.toml
Normal file
@ -0,0 +1,29 @@
|
||||
# 服务端地址 https://github.com/fatedier/frp/blob/dev/conf/frpc_full_example.toml
|
||||
serverAddr = "124.71.159.195"
|
||||
# 服务端配置的bindPort
|
||||
serverPort = 7000
|
||||
# token =
|
||||
|
||||
[[proxies]]
|
||||
# 代理应用名称,根据自己需要进行配置
|
||||
name = "smile-dev-tech-01"
|
||||
# 代理类型 有tcp\udp\stcp\p2p
|
||||
type = "tcp"
|
||||
# 客户端代理应用IP
|
||||
localIP = "host.docker.internal"
|
||||
# 客户端代理应用端口
|
||||
localPort = 8234
|
||||
# 服务端反向代理端口;提供给外部访问
|
||||
remotePort = 8234
|
||||
|
||||
[[proxies]]
|
||||
# 代理应用名称,根据自己需要进行配置
|
||||
name = "smile-dev-tech-02"
|
||||
# 代理类型 有tcp\udp\stcp\p2p
|
||||
type = "tcp"
|
||||
# 客户端代理应用IP
|
||||
localIP = "127.0.0.1"
|
||||
# 客户端代理应用端口
|
||||
localPort = 9001
|
||||
# 服务端反向代理端口;提供给外部访问
|
||||
remotePort = 9001
|
13
docs/dev-ops/frpc/docker-compose.yml
Normal file
13
docs/dev-ops/frpc/docker-compose.yml
Normal file
@ -0,0 +1,13 @@
|
||||
# 命令执行 docker-compose -f docker-compose.yml up -d
|
||||
version: '3.9'
|
||||
services:
|
||||
frpc:
|
||||
image: fatedier/frpc:v0.60.0
|
||||
hostname: frpc
|
||||
container_name: frpc
|
||||
volumes:
|
||||
- "./config/frpc.toml:/frpc.toml"
|
||||
command:
|
||||
- "-c"
|
||||
- "/frpc.toml"
|
||||
network_mode: "host"
|
10
docs/dev-ops/frps/config/frps.toml
Normal file
10
docs/dev-ops/frps/config/frps.toml
Normal file
@ -0,0 +1,10 @@
|
||||
# https://github.com/fatedier/frp/blob/dev/conf/frps_full_example.toml
|
||||
[common]
|
||||
# 监听端口
|
||||
bind_port = 7000
|
||||
# 面板端口
|
||||
dashboard_port = 7500
|
||||
# 登录面板的账号密码(修改成自己的)
|
||||
dashboard_user = admin
|
||||
dashboard_pwd = admin
|
||||
# token =
|
13
docs/dev-ops/frps/docker-compose.yml
Normal file
13
docs/dev-ops/frps/docker-compose.yml
Normal file
@ -0,0 +1,13 @@
|
||||
# 命令执行 docker-compose -f docker-compose.yml up -d
|
||||
version: '3.9'
|
||||
services:
|
||||
frps:
|
||||
image: fatedier/frps:v0.60.0
|
||||
hostname: frps
|
||||
container_name: frps
|
||||
volumes:
|
||||
- "./config/frps.toml:/frps.toml"
|
||||
command:
|
||||
- "-c"
|
||||
- "/frps.toml"
|
||||
network_mode: "host"
|
9
docs/dev-ops/smile-tech-app/docker-compose.yml
Normal file
9
docs/dev-ops/smile-tech-app/docker-compose.yml
Normal file
@ -0,0 +1,9 @@
|
||||
version: '3.8'
|
||||
# 命令执行 docker-compose -f docker-compose-app.yml up -d
|
||||
services:
|
||||
smile-tech-frp-app:
|
||||
image: zhangsan/smile-tech-frp-app:1.0
|
||||
container_name: smile-tech-frp-app
|
||||
restart: always
|
||||
ports:
|
||||
- "8234:8234"
|
104
pom.xml
Normal file
104
pom.xml
Normal file
@ -0,0 +1,104 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>cn.bugstack</groupId>
|
||||
<artifactId>smile-tech-frp</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<modules>
|
||||
<module>smile-tech-app</module>
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.7.12</version>
|
||||
<relativePath/>
|
||||
</parent>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<version>2.0.28</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.9</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
<version>32.1.3-jre</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<build>
|
||||
<finalName>smile-tech</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.0</version>
|
||||
<configuration>
|
||||
<source>${java.version}</source>
|
||||
<target>${java.version}</target>
|
||||
<encoding>${project.build.sourceEncoding}</encoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.5</version>
|
||||
<configuration>
|
||||
<encoding>UTF-8</encoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>versions-maven-plugin</artifactId>
|
||||
<version>2.7</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>dev</id>
|
||||
<activation>
|
||||
<activeByDefault>true</activeByDefault>
|
||||
</activation>
|
||||
<properties>
|
||||
<profileActive>dev</profileActive>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>test</id>
|
||||
<properties>
|
||||
<profileActive>test</profileActive>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>prod</id>
|
||||
<properties>
|
||||
<profileActive>prod</profileActive>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
</project>
|
18
smile-tech-app/Dockerfile
Normal file
18
smile-tech-app/Dockerfile
Normal file
@ -0,0 +1,18 @@
|
||||
# 基础镜像 openjdk:8-jre-slim
|
||||
FROM openjdk:8-jre-slim
|
||||
|
||||
# 作者
|
||||
MAINTAINER smile
|
||||
|
||||
# 配置
|
||||
ENV PARAMS=""
|
||||
|
||||
# 时区
|
||||
ENV TZ=PRC
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
# 添加应用
|
||||
ADD target/smile-tech-frp-app.jar /smile-tech-frp-app.jar
|
||||
|
||||
## 在镜像运行为容器后执行的命令
|
||||
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /smile-tech-frp-app.jar $PARAMS"]
|
1
smile-tech-app/build.sh
Normal file
1
smile-tech-app/build.sh
Normal file
@ -0,0 +1 @@
|
||||
docker build -t zhangsan/smile-tech-frp-app:1.0 -f ./Dockerfile .
|
110
smile-tech-app/pom.xml
Normal file
110
smile-tech-app/pom.xml
Normal file
@ -0,0 +1,110 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>cn.bugstack</groupId>
|
||||
<artifactId>smile-tech-frp</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>smile-tech-frp-app</artifactId>
|
||||
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-aop</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.micrometer</groupId>
|
||||
<artifactId>micrometer-registry-prometheus</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>smile-tech-frp-app</finalName>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
<includes>
|
||||
<include>**/**</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
<testResources>
|
||||
<testResource>
|
||||
<directory>src/test/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
<includes>
|
||||
<include>**/**</include>
|
||||
</includes>
|
||||
</testResource>
|
||||
</testResources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<configuration>
|
||||
<skipTests>true</skipTests>
|
||||
<testFailureIgnore>false</testFailureIgnore>
|
||||
<includes>
|
||||
<include>**/*Test.java</include>
|
||||
</includes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<mainClass>edu.whut.smile.tech.Application</mainClass>
|
||||
<layout>JAR</layout>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
@ -0,0 +1,58 @@
|
||||
package edu.whut.smile.dev.tech;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
|
||||
@SpringBootApplication
|
||||
@RestController()
|
||||
@RequestMapping("/api/")
|
||||
public class Application {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(Application.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* http://localhost:8234/api/test
|
||||
* http://124.71.159.195:8234/api/test
|
||||
*/
|
||||
@RequestMapping(value = "/test", method = RequestMethod.GET)
|
||||
public ResponseBodyEmitter test(HttpServletResponse response) {
|
||||
response.setContentType("text/event-stream");
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
response.setHeader("Cache-Control", "no-cache");
|
||||
|
||||
ResponseBodyEmitter emitter = new ResponseBodyEmitter();
|
||||
|
||||
String[] words = new String[]{"嗨,小伙伴。\r\n", "恭喜💐 ", "你的", " FRP 内网穿透 ", "部", "署", "测", "试", "成", "功", "了啦🌶!", "\r\nBy Smile https://blog.bitday.top"};
|
||||
new Thread(() -> {
|
||||
for (String word : words) {
|
||||
try {
|
||||
emitter.send(word);
|
||||
Thread.sleep(250);
|
||||
} catch (IOException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
|
||||
return emitter;
|
||||
}
|
||||
|
||||
/**
|
||||
* http://localhost:8234/api/query
|
||||
* http://124.71.159.195:8234/api/query
|
||||
*/
|
||||
@RequestMapping(value = "/query", method = RequestMethod.GET)
|
||||
public String query() {
|
||||
return "hi!";
|
||||
}
|
||||
|
||||
}
|
14
smile-tech-app/src/main/resources/application-dev.yml
Normal file
14
smile-tech-app/src/main/resources/application-dev.yml
Normal file
@ -0,0 +1,14 @@
|
||||
server:
|
||||
port: 8234
|
||||
tomcat:
|
||||
max-connections: 20
|
||||
threads:
|
||||
max: 20
|
||||
min-spare: 10
|
||||
accept-count: 10
|
||||
|
||||
# 日志
|
||||
logging:
|
||||
level:
|
||||
root: info
|
||||
config: classpath:logback-spring.xml
|
5
smile-tech-app/src/main/resources/application.yml
Normal file
5
smile-tech-app/src/main/resources/application.yml
Normal file
@ -0,0 +1,5 @@
|
||||
spring:
|
||||
config:
|
||||
name: smile-dev-tech
|
||||
profiles:
|
||||
active: dev
|
112
smile-tech-app/src/main/resources/logback-spring.xml
Normal file
112
smile-tech-app/src/main/resources/logback-spring.xml
Normal file
@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
|
||||
<configuration scan="true" scanPeriod="10 seconds">
|
||||
|
||||
<contextName>logback</contextName>
|
||||
<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
|
||||
<springProperty scope="context" name="log.path" source="logging.path"/>
|
||||
|
||||
<!-- 日志格式 -->
|
||||
<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"/>
|
||||
|
||||
<!-- 输出到控制台 -->
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<!-- 此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息 -->
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0}%X{ServiceId} -%X{trace-id} %m%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!--输出到文件-->
|
||||
<!-- 时间滚动输出 level为 INFO 日志 -->
|
||||
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<!-- 正在记录的日志文件的路径及文件名 -->
|
||||
<file>./data/log/log_info.log</file>
|
||||
<!--日志文件输出格式-->
|
||||
<encoder>
|
||||
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0}%X{ServiceId} -%X{trace-id} %m%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 每天日志归档路径以及格式 -->
|
||||
<fileNamePattern>./data/log/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<totalSizeCap>10GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<!-- 时间滚动输出 level为 ERROR 日志 -->
|
||||
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<!-- 正在记录的日志文件的路径及文件名 -->
|
||||
<file>./data/log/log_error.log</file>
|
||||
<!--日志文件输出格式-->
|
||||
<encoder>
|
||||
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0}%X{ServiceId} -%X{trace-id} %m%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>./data/log/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<!-- 日志文件保留天数【根据服务器预留,可自行调整】 -->
|
||||
<maxHistory>7</maxHistory>
|
||||
<totalSizeCap>5GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<!-- WARN 级别及以上 -->
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>WARN</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- 异步输出 -->
|
||||
<appender name="ASYNC_FILE_INFO" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<!-- 队列剩余容量小于discardingThreshold,则会丢弃TRACT、DEBUG、INFO级别的日志;默认值-1,为queueSize的20%;0不丢失日志 -->
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
|
||||
<queueSize>8192</queueSize>
|
||||
<!-- neverBlock:true 会丢失日志,但业务性能不受影响 -->
|
||||
<neverBlock>true</neverBlock>
|
||||
<!--是否提取调用者数据-->
|
||||
<includeCallerData>false</includeCallerData>
|
||||
<appender-ref ref="INFO_FILE"/>
|
||||
</appender>
|
||||
|
||||
<appender name="ASYNC_FILE_ERROR" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<!-- 队列剩余容量小于discardingThreshold,则会丢弃TRACT、DEBUG、INFO级别的日志;默认值-1,为queueSize的20%;0不丢失日志 -->
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
|
||||
<queueSize>1024</queueSize>
|
||||
<!-- neverBlock:true 会丢失日志,但业务性能不受影响 -->
|
||||
<neverBlock>true</neverBlock>
|
||||
<!--是否提取调用者数据-->
|
||||
<includeCallerData>false</includeCallerData>
|
||||
<appender-ref ref="ERROR_FILE"/>
|
||||
</appender>
|
||||
|
||||
<!-- 开发环境:控制台打印 -->
|
||||
<springProfile name="dev">
|
||||
<logger name="com.nmys.view" level="debug"/>
|
||||
</springProfile>
|
||||
|
||||
<root level="info">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="ASYNC_FILE_INFO"/>
|
||||
<appender-ref ref="ASYNC_FILE_ERROR"/>
|
||||
</root>
|
||||
|
||||
</configuration>
|
Loading…
x
Reference in New Issue
Block a user