<?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>