美文网首页
logback日志框架使用

logback日志框架使用

作者: 落雪无尘V | 来源:发表于2020-11-16 16:08 被阅读0次

    首先导入依赖:

        <!-- log 日志依赖 门面:slf4j 实现: logback-->
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>1.7.30</version>
        </dependency>
        <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-classic</artifactId>
          <version>1.2.3</version>
        </dependency>
    
        <!-- log end -->
    

    调用日志方法 自定义输出日志

    public class TestLog {
        public static void main(String[] args) {
            Logger logger = LoggerFactory.getLogger(TestLog.class);
            logger.info("测试日志info");
            logger.debug("测试日志debug");
            logger.warn("测试日志warn");
            logger.error("测试日志error");
        }
    }
    

    logback.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration debug="false">
        <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
        <property name="LOG_HOME" value="./logs" />
        <property name="AppName" value="sms_platform" />
        <!-- 控制台输出 -->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg %n</pattern>
            </encoder>
        </appender>
        <!-- 设置分割 -->
        <appender name="FILE"
                  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 设置按尺寸和时间(同时满足)分割 -->
            <rollingPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!-- rollover daily -->
                <fileNamePattern>${LOG_HOME}/${AppName}-%d{yyyy-MM-dd HH_mm_ss}.%i.log
                </fileNamePattern>
                <!-- each file should be at most 10MB, keep 30 days worth of history,
                    but at most 3GB -->
                <maxFileSize>10MB</maxFileSize>
                <maxHistory>30</maxHistory>
                <totalSizeCap>3GB</totalSizeCap>
            </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>
        <!-- 日志输出级别 -->
        <root level="INFO">
            <appender-ref ref="STDOUT" />
            <appender-ref ref="FILE" />
        </root>
    </configuration>
    
    
    
    

    常见问题

    1.logback.xml不生效

    logback 在启动时,根据以下步骤寻找配置文件:
    1.在 classpath 中寻找 logback-test.xml文件
    2.如果找不到 logback-test.xml,则在 classpath 中寻找 logback.groovy 文件
    3.如果找不到 logback.groovy,则在 classpath 中寻找 logback.xml文件
    4.如果上述的文件都找不到,则 logback 会使用 JDK 的 SPI 机制查找 META-INF/services/ch.qos.logback.classic.spi.Configurator 中的 logback 配置实现类,这个实现类必须实现 Configuration 接口,使用它的实现来进行配置
    5.如果上述操作都不成功,logback 就会使用它自带的 BasicConfigurator 来配置,并将日志输出到 console
    (上述内容引用自:作者:beanlam 链接:https://www.jianshu.com/p/1ded57f6c4e3)

    根据上面的描述,我们可以知道,logback就先找logback-test.xml,然后找logback.groovy,接下来找logback.xml。而我这边配置的logback的名称是logback-spring.xml,所以logback会先找到logback.xml,也就先加载了这个配置文件,导致我们的配置失效

    相关文章

      网友评论

          本文标题:logback日志框架使用

          本文链接:https://www.haomeiwen.com/subject/iutzbktx.html