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

posted @ 2022-04-18 17:20  __先森  阅读(2069)  评论(0编辑  收藏  举报