日志不与客户端产生交互,但是这一点都不会降低日志的重要性。
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 #复数加上-
该项目是运行在服务器上,本地运行只需要将日志目录改成你本地的路径就行。