springboot整合日志log4j(按日期、大小分割)

日志不与客户端产生交互,但是这一点都不会降低日志的重要性。

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、效果展示

 

posted @ 2020-09-08 16:26  砰砰的猿  阅读(3787)  评论(0编辑  收藏  举报