天天看點

Guns整合log4j2

文章目錄

  • ​​一、排除内置logback​​
  • ​​1. 删除logback.xml​​
  • ​​2. 排除内置的logback​​
  • ​​二、整合log4j2​​
  • ​​2.1. 依賴log4j2​​
  • ​​2.2. 配置檔案中配置​​
  • ​​2.3. log4j2日志檔案​​
  • ​​2.4. 效果圖​​
  • ​​2.5. 輸出要素​​
Sringboot 開源架構預設logback日志架構,Guns開源項目也是用logback日志架構
一、排除内置logback

1. 删除logback.xml

在resources目錄下面删除logback.xml

2. 排除内置的logback

和小夥伴們分享一下怎樣排除内置logback依賴?

拿​

​spring-boot-starter-web​

​給大家示範:

思路:​

​spring-boot-starter-logging​

​​首先它是一個單獨的日志啟動器,對吧!一般​

​spring-boot-starter-*​

​​大部分都會有,給大家的思路是,一級一級找,很快就能找到,大家也可以直接把常用的以​

​spring-boot-starter-*​

​​開頭的都排除​

​spring-boot-starter-logging​

Guns整合log4j2
Guns整合log4j2
Guns整合log4j2
Guns整合log4j2
<!--amqp協定-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>
 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
            <exclusions>
                <!-- 排除自帶的logback依賴 -->
                <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-web</artifactId>
            <exclusions>
                <!-- 排除自帶的logback依賴 -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
<!--quartz定時任務-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-quartz</artifactId>
            <exclusions>
                <!-- 排除自帶的logback依賴 -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>      
二、整合log4j2

2.1. 依賴log4j2

<!-- 支援識别yml配置 -->
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-yaml</artifactId>
            <version>2.10.0</version>
        </dependency>
        <!--log4j2-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>      

2.2. 配置檔案中配置

mybatis-plus:
  typeAliasesPackage: cn.stylefeng.guns.modular.system.model
  mapper-locations:
    - classpath*:cn/stylefeng/guns/**/mapping/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.log4j2.Log4j2Impl

#log4j2 預警      

2.3. log4j2日志檔案

Appenders:
  Console:  #輸出控制台的配置-
    name: CONSOLE #Appender命名
    target: SYSTEM_OUT
    PatternLayout:  #Pattern Layouts是一個靈活的布局,是最常用的日志格式配置。
#    JsonLayout:  #JsonLayout是用于console檢視json時友善檢視
      pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n"

#  這個會列印出所有的資訊,每次大小超過50MB size,則這size大小的日志會自動存入按(年份-月份)/(yyyy-MM-dd)建立的檔案夾下面以HH-mm-ss格式作為存檔
#  如果需要壓縮,在檔案名後面添加.gz即可
  RollingFile:
  - name: ROLLING_FILE
    ignoreExceptions: false
    fileName: /app/dca_apply/log/dca_health.log  #linux環境下生成的檔案目錄  一般為/**/**.log
#    fileName: D:/dca_apply/logs/dca_health.log       #windows環境下生成的檔案目錄  一般為*:/**/**.log
#    filePattern: "D:/dca_apply/logs/$${date:yyyy-MM}/$${date:yyyy-MM-dd}/dca-%d{HH-mm-ss}-%i.log"
    filePattern: "/app/dca_apply/logs/$${date:yyyy-MM}/$${date:yyyy-MM-dd}/dca-%d{HH-mm-ss}-%i.log"
#    filePattern: "/app/dca_apply/logs/$${date:yyyy-MM}/$${date:yyyy-MM-dd}/dca-%d{HH-mm-ss}-%i.log.gz"
    PatternLayout:
      pattern: "{\"@timestamp\":\"%d{yyyy-MM-dd'T'HH:mm:ss.SSS'Z'}\",\"LogId\":\"%X{logid}\",\"level\":\"%-5level\",\"threadID\":\"%threadId\",\"threadName\":\"%t\",\"ip\":\"${sys:local-ip}\",\"class\":\"%C\",\"method\":\"%M\",\"Line\":\"%L\",\"applicationName\":\"dca\",\"type\":\"common\",\"message\":\"%replace{%replace{%msg%xEx}{\"}{\\\\\"}}{[\f\n\r\t\v]}{ }\"}%n"
#      pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n"
    Policies:
      SizeBasedTriggeringPolicy:
        size: "50 MB"  #輸出到檔案最大記憶體
    DefaultRolloverStrategy:
      max: 1000

Loggers:
  Root:
    level: info
    AppenderRef:
    - ref: CONSOLE
    - ref: ROLLING_FILE
  Logger: #單獨設定某些包的輸出級别
  - name: com.sinosoft #複數加上-
    additivity: false #去除重複的log
    level: debug
    AppenderRef:
    - ref: CONSOLE #複數加上-
    - ref: ROLLING_FILE #複數加上-      

2.4. 效果圖

2.5. 輸出要素