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