最初咱們開始接觸Java的時候,咱們一般會使用System.out.println()
將咱們想要知道的信息打印到控制檯。
可是,若是在服務器上咱們去運行咱們的Java程序,這個時候就凸顯了日誌對於一個系統來講的重要性,查找異常信息、分析系統運行狀況等都須要用到日誌。java
默認狀況下,Spring Boot會用SLF4J + Logback
來記錄日誌,並用INFO
級別輸出到控制檯。spring
SLF4J,即簡單日誌門面(Simple Logging Facade for Java),它能夠看作是一個接口框架,並不提供具體的實現,具體的實現由相似於Log4j
,Log4j2
,Logback
等等這樣的日誌框架去完成。
咱們爲何要在實際的應用中去使用SLF4J的API呢?
在阿里巴巴的開發手冊上也給咱們明確【強制】規定了服務器
而百度百科上也給出了相應的解釋:app
SLF4J讓你的代碼獨立於任何特定的日誌記錄API,可讓咱們的程序更加的健壯,不會讓你由於不一樣日誌的實現而致使的問題去分心。框架
使用SLF4J的另一個理由就是,它能夠支持佔位符:spring-boot
String name = "Vi"; logger.debug("My Name is {}", name);
這段程序在運行時刻纔會拿到name
。這不只縮減了代碼中的許多字符串鏈接,並且減小了建立String對象所須要的堆內存資源。spa
若是咱們在一個Spring Boot 的程序中去使用SLF4J,咱們不須要去引入其餘的包,由於咱們引入的有關spring-boot-starter
中就已經包含了有關slf4j
的jar包。咱們只須要經過LoggerFactory
去獲取便可:插件
import org.slf4j.Logger; import org.slf4j.LoggerFactory; ... private static final Logger logger = LoggerFactory.getLogger(ResponseAop.class);
這裏須要注意看咱們選擇的是否是slf4j包下的Logger,不要選錯了喲。debug
首先在pom.xml中添加Lombok
的依賴:日誌
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
而後打開IDEA的設置項,在Plugins中查找:
注意安裝插件後記得重啓使其生效!
而後,咱們在項目中就能夠這樣去使用:
@Slf4j public class Slf4JTest { public static void main(String[] args) { log.info("This is a Slf4jTest"); } }
這裏我就偷個懶,由於網上一搜一大堆,可是實際上你用的時候仍是要根據本身的項目的狀況進行使用的(你能夠關注我,我會在後面的項目實戰中去配置,並給出源碼)。
這裏須要注意一點:默認狀況下,Spring Boot將日誌輸出到控制檯,不會寫到日誌文件。若是要編寫除控制檯輸出以外的日誌文件,則需在application.yml中設置logging.file
或logging.path
屬性。可是這倆屬性同時配置的時候,只有logging.file
生效!
原創文章,文筆有限,才疏學淺,文中如有不正之處,萬望告知。