zoukankan      html  css  js  c++  java
  • 日志

    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>
  • 相关阅读:
    MVC MVP MVVM
    RC4 对称加密
    ARM 寻址方式
    杂项记录 arm64 的一些特性
    无向图-笔记-代码
    iOS 自定义导航栏
    ios中设置UIButton圆角,添加边框
    iOS 中UICollectionView实现各种视觉效果
    UIScrollView中UITableView
    iOS 13 适配总结
  • 原文地址:https://www.cnblogs.com/jikeyi/p/13357879.html
Copyright © 2011-2022 走看看