logback官网:https://logback.qos.ch/

第一步、下载jar包

Maven 中心的二进制文件:https://repo1.maven.org/maven2/ch/qos/logback/
logback-core-1.2.3.jar
logback-classic-1.2.3.jar
slf4j-api-1.7.26.jar

第二步、配置logback.xml文件

logback.xml常用配置详解

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration debug="false" scan="true" scanPeriod="1 seconds">
  3. <contextName>logback</contextName>
  4. <!--变量定义文件路径-->
  5. <property name="log.path" value="D:\\logback.log"/>
  6. <!--输出到控制台的配置标志-->
  7. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  8. <!-- 输出流对象,默认System.out 改为System.err -->
  9. <!-- <target>System.out</target>-->
  10. <!-- 系统定义的拦截器,拦截error以下的信息 -->
  11. <!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
  12. <!-- <level>ERROR</level>-->
  13. <!-- </filter>-->
  14. <encoder>
  15. <!-- 格式化输出:%d:日期,%thread:线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符 -->
  16. <pattern>%d{HH:mm:ss.SSS} %contextName [%-5level] %c [%thread] %logger{36}:%msg%n
  17. </pattern>
  18. </encoder>
  19. </appender>
  20. <!--输出到系统文件的配置标志-->
  21. <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
  22. <!--日志输出路径-->
  23. <file>${log.path}</file>
  24. <!--指定日志文件拆分和压缩规则-->
  25. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  26. <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
  27. </rollingPolicy>
  28. <encoder>
  29. <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n</pattern>
  30. <!-- 文件字符编码-->
  31. <charset>utf-8</charset>
  32. </encoder>
  33. </appender>
  34. <!-- 级别包括:TRACE、DEBUG、INFO、WARN和ERROR,默认debug,忽略大小写***ALL是全部,OFF是全不打 -->
  35. <root level="debug">
  36. <!-- 注意:如果这里不配置关联打印位置,该位置将不会打印日志 -->
  37. <appender-ref ref="console"/>
  38. <appender-ref ref="file"/>
  39. </root>
  40. <!--logger节点,可选节点,用来具体指明包的日志输出级别,它将会覆盖root的输出级别-->
  41. <!-- <logger name="com.example.logback" level="warn"/>-->
  42. </configuration>

第三步、创建Logback日志对象

// 创建Logback的日志对象,代表了日志技术
public static final Logger LOGGER= LoggerFactory.getLogger("Demo1.class");

第四步、日志输出位置、格式设置

1、输出到控制台的配置标志

<!--输出到控制台的配置标志-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!--    输出流对象,默认System.out 改为System.err    -->
<target>System.out</target>
<!-- 过滤信息 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<!-- 格式化输出:%d:日期,%thread:线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符 -->
<pattern>%d{HH:mm:ss.SSS} %contextName [%-5level] %c [%thread] %logger{36}:%msg%n
</pattern>
</encoder>
</appender>

2、输出到文件的信息

<!--输出到系统文件的配置标志-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--日志输出路径-->
        <file>${log.path}</file>
        <!--指定日志文件拆分和压缩规则-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n</pattern>
            <!-- 文件字符编码-->
            <charset>utf-8</charset>
        </encoder>
    </appender>

3、定义输出级别

<!-- 级别包括:TRACE、DEBUG、INFO、WARN和ERROR,默认debug,忽略大小写***ALL是全部,OFF是全不打 -->
    <root level="debug">
        <!--   注意:如果这里不配置关联打印位置,该位置将不会打印日志     -->
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>