日志不與客戶端產生交互,但是這一點都不會降低日志的重要性。
1、導入依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!--我演示的項目是前后端交互的后台項目,spring-boot-starter也可以 --> <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>1.5.6.RELEASE</version> </dependency> <dependency> <!-- 支持識別yml配置 --> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> </dependency>
2、在resources目錄下創建log4j2.yml文件
Appenders:
Console: #輸出到控制台
name: CONSOLE #Appender命名
target: SYSTEM_OUT
PatternLayout:
pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n"
RollingFile: # 輸出到文件,超過256MB歸檔
- name: ROLLING_FILE
ignoreExceptions: false
fileName: /var/log/***/logs/***.log
filePattern: "/var/log/***/logs/$${date:yyyy-MM}/newknowledgebase-%d{yyyy-MM-dd}-%i.log"
PatternLayout:
pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n"
Policies:
SizeBasedTriggeringPolicy:
size: "8 KB"#這是為了測試,可以更改如MB等
DefaultRolloverStrategy:
max: 1000
Loggers:
Root:
level: info
AppenderRef:
- ref: CONSOLE
Logger: #單獨設置某些包的輸出級別
- name: com.***.***#復數加上-(這里我設置的是包的根路徑的包名)
additivity: false #去除重復的log
level: info
AppenderRef:
- ref: CONSOLE #復數加上-
- ref: ROLLING_FILE #復數加上-
該項目是運行在服務器上,本地運行只需要將日志目錄改成你本地的路徑就行。
3、效果展示

