zoukankan      html  css  js  c++  java
  • SpringBoot构建应用之集成Logback

    一 依赖关系的梳理

      当我们用IDEA简单的构建一个单体的应用时,所依赖的POM中其实已经有集成了logback的依赖;

      我们可以打开pom.xml

      

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.7.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    

      点击进入spring-boot-starter-parent 里依赖了spring-boot-dependencies

      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath>../../spring-boot-dependencies</relativePath>
      </parent>
    

      再进入spring-boot-dependencies 里找到spring-boot-starter

      <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>2.1.7.RELEASE</version>
      </dependency>
    

      再进入spring-boot-starter找到spring-boot-starter-logging

       <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
          <version>2.1.7.RELEASE</version>
          <scope>compile</scope>
        </dependency>
    

      点击进入就能看到有依赖了logback

    <dependencies>
        <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-classic</artifactId>
          <version>1.2.3</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-to-slf4j</artifactId>
          <version>2.11.2</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>jul-to-slf4j</artifactId>
          <version>1.7.26</version>
          <scope>compile</scope>
        </dependency>
      </dependencies>
    

     二 xml配置

    首先,官方推荐使用的xml名字的格式为:logback-spring.xml而不是logback.xml,至于为什么,因为带spring后缀的可以使用<springProfile>这个标签  

    我们在resource的目录下新建一个 logback-spring.xml 内容如下

    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration>
    
        <springProperty scope="context" name="logLevel" source="logging.pattern.level"/>
        <springProperty scope="context" name="logPath" source="logging.path"/>
        <springProperty scope="context" name="fileName" source="logging.file"/>
    
        <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>
                    %date [%thread] %-5level %logger{80} - %msg%n
                </pattern>
            </layout>
        </appender>
    
        <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>DENY</onMatch>
                <onMismatch>ACCEPT</onMismatch>
            </filter>
            <encoder>
                <pattern>
                    %date [%thread] %-5level %logger{80} - %msg%n
                </pattern>
            </encoder>
            <!--滚动策略-->
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!--路径-->
                <fileNamePattern>${logPath}/${fileName}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
                <maxFileSize>200MB</maxFileSize>
                <maxHistory>60</maxHistory>
            </rollingPolicy>
    
        </appender>
    
    
        <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>ERROR</level>
            </filter>
            <encoder>
                <pattern>
                    %date [%thread] %-5level %logger{80} - %msg%n
                </pattern>
            </encoder>
            <!--滚动策略-->
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!--路径-->
                <fileNamePattern>${logPath}/${fileName}-%d{yyyy-MM-dd}-error-%i.log</fileNamePattern>
                <maxFileSize>200MB</maxFileSize>
                <maxHistory>60</maxHistory>
            </rollingPolicy>
        </appender>
    
        <!--此处是针对具体包下面配置日志级别-->
        <!--配置文件中设置的是项目的日志级别-->
        <logger name="com.pyq.blog" level="${logLevel}" />
        <!--自己本地开发想打印sql时打开注释 但切勿提交-->
    
        <springProfile  name="dev" >
            <!--此处是针对所有包的日志级别-->
            <root level="${logLevel}">
                <appender-ref ref="consoleLog" />
    <!--            <appender-ref ref="fileInfoLog" />-->
                <!--<appender-ref ref="fileErrorLog" />-->
            </root>
        </springProfile >
    
        <springProfile name="test">
            <root level="${logLevel}">
                <!--此处是针对所有包的日志级别-->
                <!--<appender-ref ref="consoleLog" />-->
                <appender-ref ref="fileInfoLog" />
                <appender-ref ref="fileErrorLog" />
            </root>
        </springProfile>
    
        <springProfile name="prod">
            <root level="${logLevel}">
                <!--此处是针对所有包的日志级别-->
                <!--<appender-ref ref="consoleLog" />-->
                <appender-ref ref="fileInfoLog" />
                <appender-ref ref="fileErrorLog" />
            </root>
        </springProfile>
    
    </configuration>
    

      

      上面的包名自己替换

      三 yml配置日志

    logging:
      path: D:log
      file: ${spring.application.name}
      pattern:
        level: INFO
    

      

  • 相关阅读:
    每天一道leetcode 搜索旋转排序数组(二分法)
    每天一道leetcode 统计重复个数(循环节)
    python3 简单web目录扫描脚本(后续更新完整)
    每天一道leetcode 盛最多水的容器 (双指针)
    python3 语法学习 类和继承
    python3 语法学习 文件操作及os方法
    python3 语法学习 输入输出美观
    TCP/IP 协议:IP 协议
    TCP/IP 协议:链路层概述
    Http权威指南(二)---读书笔记
  • 原文地址:https://www.cnblogs.com/pangyangqi/p/11443035.html
Copyright © 2011-2022 走看看