文章目錄
- 一、排除内置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
<!--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. 輸出要素