SpringBoot使用SLF4J
SLF4J簡介
一,概念
-
self4j:按百科來說,SLF4J,即簡單日志門面(Simple Logging Facade for Java),不是具體的日志解決方案,它只服務於各種各樣的日志系統。實際上,SLF4J所提供的核心API是一些接口以及一個
-
log4j:log4j是Apache的一個開源項目,可以靈活地記錄日志信息,我們可以通過Log4j的配置文件靈活配置日志的記錄格式、記錄級別、輸出格式,而不需要修改已有的日志記錄代碼。
(上述內容來自於“百度”)
1. springboot以及整合了SLF4J所以不需要導入依賴
2. 簡單配置
Spring Boot 對 SLF4J 支持得很好,內部已經集成了 SLF4J,一般我們在使用的時候,會對 SLF4J 做一下配置。
3. 使用配置文件(logback.xml)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE logback>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern><![CDATA[date:%d{yyyy-MM-dd HH:mm:ss}\tthread:%thread\tlevel:%-5level\tlogger:%-48logger{48}\tmsg:%msg%n]]></pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>log/test.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志歸檔路徑以及格式 -->
<FileNamePattern>log/test-%d{yyyyMMdd}.log</FileNamePattern>
<!--日志文件保留天數-->
<MaxHistory>2</MaxHistory>
</rollingPolicy>
<encoder>
<Pattern><![CDATA[date:%d{yyyy-MM-dd HH:mm:ss}\tthread:%thread\tlevel:%-5level\tlogger:%-48logger{48}\tmsg:%msg%n]]></Pattern>
</encoder>
</appender>
<!--
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>127.0.0.1:5044</destination>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp/>
<version/>
<message/>
<loggerName/>
<threadName/>
<logLevel/>
<callerData/>
</providers>
</encoder>
</appender>
-->
<!-- Application Loggers -->
<logger name="com.example">
<level value="debug" />
</logger>
<!-- 3rdparty Loggers -->
<logger name="org.apache.http">
<level value="error" />
</logger>
<logger name="org.springframework.core">
<level value="warn" />
</logger>
<logger name="org.springframework.beans">
<level value="warn" />
</logger>
<logger name="org.springframework.context">
<level value="warn" />
</logger>
<logger name="org.springframework.web">
<level value="warn" />
</logger>
<logger name="org.springframework.web.servlet">
<level value="info" />
</logger>
<logger name="org.springframework.web.servlet.DispatcherServlet">
<level value="debug" />
</logger>
<logger name="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<level value="info" />
</logger>
<logger name="org.springframework.security.core.userdetails">
<level value="debug" />
</logger>
<logger name="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<level value="debug" />
</logger>
<logger name="jdbc.sqltiming">
<level value="debug" />
</logger>
<logger name="com.alibaba.cloud.nacos.client">
<level value="error" />
</logger>
<root>
<level value="warn" />
<appender-ref ref="STDOUT" />
<appender-ref ref="ROLLING" />
<!-- <appender-ref ref="LOGSTASH" /> -->
</root>
</configuration>
4. self4j的日志等級
SLF4J將日志分為trace、debug、info、warn、error五個級別,每個級別對應記錄不同的日志,對應不同的使用場景。
- ERROR 為嚴重錯誤 主要是程序的錯誤
- WARN 表示警告信息
- INFO 為一般要顯示的信息,比如登錄登出
- DEBUG 為程序的調試信息
- TRACE trace是最低優先級的日志,一般用來追蹤詳細的程序運行流
更多內容請看
https://www.jianshu.com/p/0166f4bb5fec
https://blog.csdn.net/yaoct/article/details/106115034
https://www.jianshu.com/p/ec3bd614dcb0
