1. pom
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> <version>RELEASE</version> </dependency> <!-- 解析yml--> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> <version>2.9.7</version> </dependency> <!-- 異步實現--> <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.4.1</version> </dependency>
2. log4j2.yml
Configuration: name:xxx_logger Properties: Property: - name: log.path value: logs - name: app.name value: xxx - name: log.pattern value: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %l: %msg%n" Appenders: Console: name: console target: SYSTEM_OUT PatternLayout: pattern: ${log.pattern} RollingFile: name: running_log fileName: ${log.path}/${app.name}-running.log filePattern: "logs/archive/running.log.%d{yyyy-MM-dd-hh-mm}.gz" PatternLayout: charset: utf-8 pattern: ${log.pattern} Filters: ThresholdFilter: - level: info onMatch: ACCEPT onMismatch: DENY Policies: SizeBasedTriggeringPolicy: size: 500 MB DefaultRollOverStrategy: max: 200 Loggers: AsyncRoot: level: debug includeLocation: true AppenderRef: - ref: console - ref: running_log