springboot 引入logback框架


1、引入jar包

<slf4j.version>1.7.30</slf4j.version>
<logback.version>1.2.3</logback.version>

     <!-- log4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>

  

2、引入logback.xml

<?xml version="1.0" encoding="utf-8"?>
<configuration>

<property name="log_home" value="./" />
<!-- 服務名稱,自行修改成各自的服務名稱 -->
<property name="app.name" value="test-server" />

<!-- sql -->
<appender name="FILE-JDBC" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${log_home}/${app.name}_jdbc.log</File>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%-5level] [%-5thread] [%X{request.url}] %logger{20} - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>warn</level>
</filter>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log_home}/${app.name}_jdbc_%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>

<!-- 控制台輸出日志,方便本地測試使用 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>

<!-- 默認日志輸出文件,每天生成一個,保留最近30天的日志 -->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log_home}/logs/${app.name}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log_home}/logs/${app.name}-.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>

<!-- 記錄數據源日志 -->
<appender name="log4jdbc" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log_home}/logs/${app.name}-log4jdbc.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log_home}/logs/${app.name}-log4jdbc-%d{yyyyMMdd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%-5level] [%-5thread] [%X{request.url}] %logger{20} - %msg%n</pattern>
</encoder>
</appender>

<logger name="com.huazhu.workermgmtservice" additivity="false" level="info">
<appender-ref ref="file" />

<!-- 控制台輸出,本地調試時可打開,正式環境注釋掉 -->
<appender-ref ref="stdout" />
</logger>

<!--打印SQL-->
<logger name="java.sql" level="DEBUG">
<appender-ref ref="log4jdbc" />
</logger>
<logger name="java.sql.Connection" level="DEBUG" >
<appender-ref ref="log4jdbc" />
</logger>
<logger name="java.sql.Statement" level="DEBUG" >
<appender-ref ref="log4jdbc" />
</logger>
<logger name="java.sql.PreparedStatement" level="DEBUG" >
<appender-ref ref="log4jdbc" />
</logger>

<!-- 記錄sql執行的時間,可以分析耗時的sql語句 -->
<logger name="jdbc.sqltiming" additivity="false">
<appender-ref ref="FILE-JDBC" />
<!--debug 控制輸出方法名,appender中filter過濾debug級別以下的日志 -->
<level value="debug" />
</logger>

<root level="info">
<!-- 控制台輸出,本地調試時可打開,正式環境注釋掉 -->
<appender-ref ref="stdout" />
<appender-ref ref="log4jdbc" />
</root>

</configuration>

  

3、使用

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

private final  static Logger logger = 
 LoggerFactory.getLogger(YfLaborInfoServiceImpl.class);

logger.info("selectListByCardProjectId info yfLaborInfoDto is {},token is {}", yfLaborInfoDto, token);

  

4、為何使用slf4j和logback

https://www.liaoxuefeng.com/wiki/1252599548343744/1264739155914176


免責聲明!

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



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