zoukankan      html  css  js  c++  java
  • logback配置

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    <!--子节点<property> :用来定义变量值,它有两个属性name和value,通过<property>定义的值会被插入到logger上下文中,可以使“${}”来使用变量。-->
    <!-- name: 变量的名称 ,value: 的值时变量定义的值  --> 
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} - %msg%n"/>
    <property name="LOG_PATH" value="${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}"/>
       <!--输出日志文件的appender-->
        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_PATH}/${LOG_FILE}</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>${LOG_PATH}/${LOG_FILE}.%d{yyyy-MM-dd}</fileNamePattern>
    </rollingPolicy>
    <encoder charset="UTF-8">
    <pattern>${FILE_LOG_PATTERN}</pattern>
    </encoder>
    </appender>
    <!--控制台日志的appender-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder charset="UTF-8">
    <pattern>${FILE_LOG_PATTERN}</pattern>
    </encoder>
    </appender>

    <!--输出文件日志appender-->

    <appender name="CRAWLER_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>${LOG_PATH}/event.%d{yyyy-MM-dd}.log</fileNamePattern>
    <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder charset="UTF-8" class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    <pattern>%msg%n</pattern>
    </encoder>
    </appender>
      <!--指定"com.course.controller"包下的日志打到event.%d{yyyy-MM-dd}.log文件下,打印级别是info -->
      <!--
    additivity="true",是把这个包下打印的日志传递到上级loger,他的上级是<root>,下面已经设置<root>,所以他的打印信息也会到控制台和File-->
        <logger name="com.course.controller" level="INFO" additivity="true">
    <appender-ref ref="CRAWLER_LOG"/>
    </logger>

    <root level="INFO">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="FILE"/>
    </root>

    </configuration>

    子节点<appender>:负责写日志的组件,它有两个必要属性name和class。name指定appender名称,class指定appender的全限定名
        1、ConsoleAppender 把日志输出到控制台,有以下子节点:
            <encoder>:对日志进行格式化。(具体参数稍后讲解 )
            <target>:字符串System.out(默认)或者System.err

        2.RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。有以下子节点:
          <file>:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。
          <append>:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。
          <rollingPolicy>:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名。属性class定义具体的滚动策略类
          class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy": 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动。有以下子节点:

        3.子节点<loger>:用来设置某一个包或具体的某一个类的日志打印级别、以及指定<appender>。<loger>仅有一个name属性,一个可选的level和一个可选的addtivity属性。
            可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个loger
         name: 用来指定受此loger约束的某一个包或者具体的某一个类。
         level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。 如果未设置此属性,那么当前loger将会继承上级的级别。
    addtivity: 是否向上级loger传递打印信息。默认是true。同<loger>一样,可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个loger。

        4.子节点<root>:它也是<loger>元素,但是它是根loger,是所有<loger>的上级。只有一个level属性,因为name已经被命名为"root",且已经是最上级了。
        level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,不能设置为INHERITED或者同义词NULL。 默认是DEBUG。

    项目的application.yml文件配置:
    logging:
    file:
    path: logs
    name: mylog.log

    说明:lomback要用的依赖 slf4j-api.jar,logback-core.jar,logback-classic.jar ,spring-boot项目已经集成这些jar包,使用只要引入 Lombok的
    @Slf4j 即可



    人生因有期待而美好; 谁不是一边热爱生活,又一边不想活。 学最好的别人,做最好的自己。
  • 相关阅读:
    OSX中zsh新增环境变量
    新的开始 春光明媚
    tmux
    继承
    6
    Object类
    网页收藏
    画王八
    ES6 语法之import export
    ES6 语法 之 destructuring
  • 原文地址:https://www.cnblogs.com/peoty/p/15145208.html
Copyright © 2011-2022 走看看