SpringBoot使用SLF4J


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM