logback日志的配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>


    <!--

      Logger做为日志的记录器,把它关联到应用的对应的context上后,主要用于存放日志对象,也能够定义日志类型、级别。

    Appender主要用于指定日志输出的目的地,目的地能够是控制台、文件、远程套接字服务器、 MySQL、 PostreSQL、 Oracle和其余数据库、 JMS和远程UNIX Syslog守护进程等。

    Layout 负责把事件转换成字符串,格式化的日志信息的输出
    -->
    <jmxConfigurator/>
    <!--
    节点<property>   :用来定义变量值,它有两个属性name和value,经过<property>定义的值会被插入到logger上下文中,能够使“${}”来使用变量。
    name: 变量的名称
    value: 的值时变量定义的值
    -->
    <property name="LOG_FILE" value="${LOG_PATH}/myproject.log"/>

    <property name="ADDITIONAL" value="%X{REQUEST_ID} %X{REQUEST_TYPE} %X{TRACE_ID}"/>
    <property name="LOG_LEVEL_PATTERN" value="myproject %5p ${ADDITIONAL}"/>

    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>

    <!--
    子节点<appender>:负责写日志的组件,它有两个必要属性name和class。name指定appender名称,class指定appender的全限定名
    -->
    <appender name="FILE"

              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--
        <encoder>:对日志进行格式化

        1.<pattern>${FILE_LOG_PATTERN}</pattern>这个是什么意思???
        -->
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <!--
        <file>:被写入的文件名,能够是相对目录,也能够是绝对目录,若是上级目录不存在会自动建立,没有默认值。
        -->
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}</fileNamePattern>
        </rollingPolicy>
    </appender>

    <!--customer专用appender
     Appender主要用于指定日志输出的目的地
    -->
    <appender name="customerAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/customer.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/customer-%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>${ADDITIONAL} %d{HH:mm:ss.SSS} - %msg%n</pattern>
        </encoder>
    </appender>

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

    -->
    <logger name="com.pingan.haofang.myproject.customer.controller.CustomerController" level="INFO" additivity="false">
        <appender-ref ref="customerAppender"/>
    </logger>

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

</configuration>
相关文章
相关标签/搜索