• 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

  • 相关阅读:
    安卓SQLite数据库操作(上)
    Android 查看设备信息
    Unity 编辑器学习(四)之 静态游戏物体
    Unity 编辑器学习(三)之 Light & Baked
    Unity 编辑器学习(二)之 全局光照(GI)
    unity 自动删除未引用的Assets下的资源
    C# http服务器
    unity 美术注意事项
    软件版本号命名规范
    Unity 框架(一)
  • 原文地址:https://www.cnblogs.com/jiehanshi/p/13690174.html
Copyright © 2020-2023  润新知