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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM