日志

5.4 使用log4j日志框架

  log4j 本身并没实现slf4j规范,必须依赖slf4j12进行转换

  导入依赖

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.25</version>
    <scope>test</scope>
</dependency>

在项目的resources目录下创建log4j所需的配置文件:log4j.xml

<?xml version="1.0"  encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>

    <appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                   value="[%d{dd HH:mm:ss,SSS} ] %-5p [%t] %c{2} - %m%n" />
        </layout>
        <!--过滤器设置输出的级别-->
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="levelMin" value="debug" />
            <param name="levelMax" value="warn" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>

    <appender name="myFile" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="D:/output.log" /><!-- 设置日志输出文件名 -->
        <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
        <param name="Append" value="true" />
        <param name="MaxBackupIndex" value="10" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
        </layout>
    </appender>

    <!-- 根logger的设置-->
    <root>
        <priority value ="debug"/>
        <appender-ref ref="myConsole"/>
        <appender-ref ref="myFile"/>
    </root>
</log4j:configuration>

5.5 使用logback日志框架

  • 导入依赖

  • <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>

    在项目的resources目录下创建logback的配置文件:logback-test.xml

  • <?xml version="1.0" encoding="UTF-8"?>
    <configuration scan="true" scanPeriod="6000000" debug="false">
    
        <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} %5p [%t:%c{1}:%L] - %msg%n"/>
    
        <!-- 系统级配置文件 开始 -->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <layout class="ch.qos.logback.classic.PatternLayout">
                <Pattern>${LOG_PATTERN}</Pattern>
            </layout>
        </appender>
    
        <appender name="FILE" class="ch.qos.logback.core.FileAppender">
            <file>testFile.log</file>
            <append>true</append>
            <encoder>
                <pattern>${LOG_PATTERN}</pattern>
            </encoder>
        </appender>
    
        <root level="debug">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="FILE"/>
        </root>
  • 5.6 SpringBoot应用中如何使用日志

    • 在resources目录下创建logback-spring.xml进行日志策略配置

    • <?xml version="1.0" encoding="UTF-8"?>
      <configuration>
      
          <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
              <encoder>
                  <springProfile name="dev">
                      <pattern>%d{yyyy-MM-dd-HH:mm:ss.SSS} %level [%thread]-%class:%line~~%msg%n</pattern>
                  </springProfile>
                  <springProfile name="!dev">
                      <pattern>%d{yyyy-MM-dd-HH:mm:ss.SSS} %level [%thread]-%class:%line~~%msg%n</pattern>
                  </springProfile>
                  <!--日志的编码格式-->
                  <charset>UTF-8</charset>
              </encoder>
          </appender>
      
          <!--这个就表示的是要把 日志输出到文件(FileAppender)-->
          <appender name="file" class="ch.qos.logback.core.FileAppender">
              <file>D:/log/output.log</file>
              <!--设置日志是否追加-->
              <append>true</append>
              <encoder>
                  <pattern>%d{yyyy-MM-dd-HH:mm:ss.SSS} %level    [%thread]-%class:%line>>%msg%n</pattern>
                  <charset>UTF-8</charset>
              </encoder>
              <!--设置日志写入是否线程安全-->
              <prudent>false</prudent>
          </appender>
      
          <appender name="timeFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
              <!--TimeBasedRollingPolicy  基于时间的滚动策略-->
              <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                  <fileNamePattern>d:/log/log-%d{yyyy-MM-dd}.log</fileNamePattern>
              </rollingPolicy>
              <encoder>
                  <pattern>%d{yyyy-MM-dd-HH:mm:ss.SSS} %level    [%thread]-%class:%line>>%msg%n</pattern>
                  <charset>UTF-8</charset>
              </encoder>
          </appender>
      
          <appender name="fixedFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
              <file>d:/log/fixedFile.log</file>
              <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                  <fileNamePattern>log/fixedFile%i.log</fileNamePattern>
                  <minIndex>1</minIndex>
                  <maxIndex>10</maxIndex>
              </rollingPolicy>
              <!--SizeBasedTriggeringPolicy-->
              <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                  <maxFileSize>5MB</maxFileSize>
              </triggeringPolicy>
              <encoder>
                  <pattern>%d{yyyy-MM-dd-HH:mm:ss.SSS} %level    [%thread]-%class:%line>>%msg%n
                  </pattern>
                  <charset>UTF-8</charset>
              </encoder>
          </appender>
      
      <!--    <logger name="com.qf.springboot.controller" level="info" addtivity="false">-->
      <!--        <appender-ref ref="file" />-->
      <!--        <appender-ref ref="timeFile" />-->
      <!--        <appender-ref ref="fixedFile" />-->
      <!--    </logger>-->
      
          <root level="info">
              <appender-ref ref="stdout" />
              <appender-ref ref="timeFile"/>
          </root>
      
      </configuration>
原文地址:https://www.cnblogs.com/jikeyi/p/13357879.html