您好,登錄后才能下訂單哦!
這篇文章主要講解了“spring boot 2日志怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“spring boot 2日志怎么實現”吧!
Spring Boot除了commons-loggingAPI外沒有其他強制性的日志依賴,你有很多可選的日志實現。想要使用Logback,你需要包含它及jcl-over-slf4j(它實現了Commons Logging API)。最簡單的方式是通過依賴spring-boot-starter-logging的starters。對于一個web應用程序,你只需添加spring-boot-starter-web依賴,因為它依賴于logging starter。例如,使用Maven:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
Spring Boot有一個LoggingSystem抽象,用于嘗試通過classpath上下文配置日志系統。如果Logback可用,則首選它。如果你唯一需要做的就是設置不同日志級別,那可以通過在application.properties中使用logging.level前綴實現,比如:
logging.level.org.springframework.web=DEBUG logging.level.org.hibernate=ERROR
你也可以使用logging.file設置日志文件的位置(除控制臺之外,默認會輸出到控制臺)。
想要對日志系統進行更細粒度的配置,你需要使用LoggingSystem支持的原生配置格式。默認情況下,Spring Boot從系統的默認位置加載原生配置(比如對于Logback為classpath:logback.xml),但你可以使用logging.config屬性設置配置文件的位置。
如果你將logback.xml放到classpath根目錄下,那它將會被從這加載(或logback-spring.xml充分利用Boot提供的模板特性)。Spring Boot提供一個默認的基本配置,如果你只是設置日志級別,那你可以包含它,比如:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/base.xml"/> <logger name="org.springframework.web" level="DEBUG"/> </configuration>
如果查看spring-boot jar中的base.xml,你將會看到LoggingSystem為你創建的很多有用的系統屬性,比如:
${PID},當前進程id。
${LOG_FILE},如果在Boot外部配置中設置了logging.file。
${LOG_PATH},如果設置了logging.path(表示日志文件產生的目錄)。
${LOG_EXCEPTION_CONVERSION_WORD},如果在Boot外部配置中設置了logging.exception-conversion-word。
Spring Boot也提供使用自定義的Logback轉換器在控制臺上輸出一些漂亮的彩色ANSI日志信息(不是日志文件),具體參考默認的base.xml配置。
如果Groovy在classpath下,你也可以使用logback.groovy配置Logback。
如果想禁用控制臺日志記錄,只將輸出寫入文件中,你需要一個只導入file-appender.xml而不是console-appender.xml的自定義logback-spring.xml:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/> <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration>
你還需要將logging.file添加到application.properties:
logging.file=myapplication.log
如果Log4j 2出現在classpath下,Spring Boot會將其作為日志配置。如果你正在使用starters進行依賴裝配,這意味著你需要排除Logback,然后包含log4j 2。如果不使用starters,除了添加Log4j 2,你還需要提供jcl-over-slf4j依賴(至少)。
最簡單的方式可能就是通過starters,盡管它需要排除一些依賴,比如,在Maven中:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <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-log4j2</artifactId> </dependency>
注 Log4j starters會收集好依賴以滿足普通日志記錄的需求(比如,Tomcat中使用java.util.logging,但使用Log4j 2作為輸出),具體查看Actuator Log4j 2的示例,了解如何將它用于實戰。
除了它的默認XML配置格式,Log4j 2也支持YAML和JSON配置文件。想使用其他配置文件格式配置Log4j 2,你需要添加合適的依賴到classpath,并以匹配所選格式的方式命名配置文件:
格式 | 依賴 | 文件名 |
---|---|---|
YAML | com.fasterxml.jackson.core:jackson-databindcom.fasterxml.jackson.dataformat:jackson-dataformat-yaml | log4j2.yamllog4j2.yml |
JSON | com.fasterxml.jackson.core:jackson-databind | log4j2.jsonlog4j2.jsn |
感謝各位的閱讀,以上就是“spring boot 2日志怎么實現”的內容了,經過本文的學習后,相信大家對spring boot 2日志怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。