日誌在系統中相當重要,尤爲是生產環境,一旦出現問題,首先是日誌中的錯誤信息觸發預警系統,而後經過郵件、短信甚至電話通知的方式報警給系統負責人。在排查修復問題階段,開發測試人員一般也要查看系統日誌,分析故障緣由。
java
Spring默認使用SLF4J和LogBack,可在application.yml中定製配置。git
代碼文件github |
功能要點web |
|
SpringBoot集成SLF4J和LogBackspring |
pom.xml緩存 |
引入log依賴:spring-boot-starter-logging,注:spring-boot-starter和spring-boot-starter-web已經引入了spring-boot-starter-loggingapp |
application.ymlide |
定製配置log屬性函數 |
|
封裝LogUtilspring-boot |
LogUtil.java |
集中處理日誌 |
單元測試 |
LogUtilTest.java |
測試log輸出 |
功能調用 |
xxx.java |
調用LogUtil函數,如LogUtil.info() |
l 代碼
Github下載:https://github.com/jextop/StarterApi/
l SpringBoot集成Log日誌
1. pring-boot-starter和spring-boot-starter-web默認引入了SLF4J和LogBack依賴。若是須要單獨引入,可在pom.xml中添加spring-boot-starter-logging
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
2. 在application.yml中定製配置log屬性:
logging.level:指定package的輸出日誌級別,可選:debug, info, warn, error
logging.file.path:指定日誌文件路徑
logging.file.max-size:指定單個文件大小,超過期將滾動生成多個文件
logging.file.max-history:指定歸檔日誌文件保留的最長曆史記錄
logging.pattern.console:輸出到console工做臺的日誌格式
logging.pattern.file:輸出到日誌文件的格式
logging:
level:
com.starter: info
file:
path: logs
max-size: 10MB
max-history: 7
pattern:
console: "%d %-5level [%thread] %logger : %msg%n"
file: "%d %-5level [%thread] %logger : %msg%n"
l 封裝LogUtil.java,集中處理日誌
l 單元測試,調用LogUtil
@SpringBootTest(classes = StarterApplication.class)
public class LogUtilTest {
@Test
public void testLog() {
LogUtil.debug("debug", "message.");
LogUtil.info("info", "message.");
LogUtil.warn("warn", "message.");
LogUtil.error("error", "message.");
}
}
輸出日誌:
2020-01-31 14:21:13,796 INFO [main] com.common.util.LogUtil : info, message.
2020-01-31 14:21:13,796 WARN [main] com.common.util.LogUtil : warn, message.
2020-01-31 14:21:13,796 ERROR [main] com.common.util.LogUtil : error, message.
l 功能調用
- 代碼中調用LogUtil.info(「xxx」)
LogUtil.info("Check cache to set str", key, str);
- Console工做臺和日誌文件輸出:
2020-01-31 14:19:02,438 INFO [http-nio-8011-exec-2] com.common.util.LogUtil : Check cache to set str, cache_test_192.168.3.9_200131014871354985900257_緩存, cache_test_192.168.3.9_200131014871354985900257_緩存