您好,登錄后才能下訂單哦!
這篇文章主要講解了“Spring Boot怎么進行日志處理”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Spring Boot怎么進行日志處理”吧!
https://logging.apache.org/log4j/2.x/performance.html
Maven 依賴
<!-- web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- 日志 Log4j2 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <!-- Log4j2 異步支持 --> <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.3.6</version> </dependency>
XML 配置 resources/log4j2.xml
混合 sync/async
彩色日志
分類輸出到不同文件
自動壓縮日志文件并歸檔
<?xml version="1.0" encoding="UTF-8"?> <!-- Configuration后面的status,這個用于設置log4j2自身內部的信息輸出,可以不設置,當設置成trace時, 你會看到log4j2內部各種詳細輸出。可以設置成OFF(關閉) 或 Error(只輸出錯誤信息)。 30s 刷新此配置 --> <configuration status="WARN" monitorInterval="30"> <!-- 日志文件目錄、壓縮文件目錄、日志格式配置 --> <properties> <Property name="fileName">/Users/admin/Code/log</Property> <Property name="fileGz">/Users/admin/Code/log/7z</Property> <Property name="PID">????</Property> <Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx</Property> </properties> <Appenders> <!-- 輸出控制臺日志的配置 --> <Console name="console" target="SYSTEM_OUT"> <!--控制臺只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch)--> <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/> <!-- 輸出日志的格式 --> <PatternLayout pattern="${LOG_PATTERN}"/> </Console> <!-- 打印出所有的信息,每次大小超過size,則這size大小的日志會自動存入按年份-月份建立的文件夾下面并進行壓縮,作為存檔 --> <RollingRandomAccessFile name="infoFile" fileName="${fileName}/web-info.log" immediateFlush="false" filePattern="${fileGz}/$${date:yyyy-MM}/%d{yyyy-MM-dd}-%i.web-info.gz"> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="20 MB"/> </Policies> <Filters> <!-- 只記錄info和warn級別信息 --> <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> <!-- 指定每天的最大壓縮包個數,默認7個,超過了會覆蓋之前的 --> <DefaultRolloverStrategy max="50"/> </RollingRandomAccessFile> <!-- 存儲所有error信息 --> <RollingRandomAccessFile name="errorFile" fileName="${fileName}/web-error.log" immediateFlush="false" filePattern="${fileGz}/$${date:yyyy-MM}/%d{yyyy-MM-dd}-%i.web-error.gz"> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="50 MB"/> </Policies> <Filters> <!-- 只記錄error級別信息 --> <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> <!-- 指定每天的最大壓縮包個數,默認7個,超過了會覆蓋之前的 --> <DefaultRolloverStrategy max="50"/> </RollingRandomAccessFile> </Appenders> <!-- Mixed sync/async --> <Loggers> <Root level="debug" includeLocation="true"> <AppenderRef ref="console"/> <AppenderRef ref="infoFile"/> <AppenderRef ref="errorFile"/> </Root> <AsyncRoot level="debug" includeLocation="true"> <AppenderRef ref="console"/> <AppenderRef ref="infoFile"/> <AppenderRef ref="errorFile"/> </AsyncRoot> </Loggers> </configuration>
最終效果如下:
問題來了,請問諸位你們項目中目前在使用Logback還是Log4j2呢?
感謝各位的閱讀,以上就是“Spring Boot怎么進行日志處理”的內容了,經過本文的學習后,相信大家對Spring Boot怎么進行日志處理這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。