美文网首页
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