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