mirror of https://github.com/macrozheng/mall
203 lines
8.6 KiB
XML
203 lines
8.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE configuration>
|
||
<configuration>
|
||
<!--引用默认日志配置-->
|
||
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
|
||
<!--使用默认的控制台日志输出实现-->
|
||
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
|
||
<!--应用名称-->
|
||
<springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="springBoot"/>
|
||
<!--日志文件保存路径-->
|
||
<property name="LOG_FILE_PATH" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/logs}"/>
|
||
<!--LogStash访问host-->
|
||
<springProperty name="LOG_STASH_HOST" scope="context" source="logstash.host" defaultValue="localhost"/>
|
||
<!--是否开启LogStash插件内部日志-->
|
||
<springProperty name="ENABLE_INNER_LOG" scope="context" source="logstash.enableInnerLog" defaultValue="false"/>
|
||
|
||
<!--DEBUG日志输出到文件-->
|
||
<appender name="FILE_DEBUG"
|
||
class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||
<!--输出DEBUG以上级别日志-->
|
||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||
<level>DEBUG</level>
|
||
</filter>
|
||
<encoder>
|
||
<!--设置为默认的文件日志格式-->
|
||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||
<charset>UTF-8</charset>
|
||
</encoder>
|
||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||
<!--设置文件命名格式-->
|
||
<fileNamePattern>${LOG_FILE_PATH}/debug/${APP_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
|
||
<!--设置日志文件大小,超过就重新生成文件,默认10M-->
|
||
<maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
|
||
<!--日志文件保留天数,默认30天-->
|
||
<maxHistory>${LOG_FILE_MAX_HISTORY:-30}</maxHistory>
|
||
</rollingPolicy>
|
||
</appender>
|
||
|
||
<!--ERROR日志输出到文件-->
|
||
<appender name="FILE_ERROR"
|
||
class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||
<!--只输出ERROR级别的日志-->
|
||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||
<level>ERROR</level>
|
||
<onMatch>ACCEPT</onMatch>
|
||
<onMismatch>DENY</onMismatch>
|
||
</filter>
|
||
<encoder>
|
||
<!--设置为默认的文件日志格式-->
|
||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||
<charset>UTF-8</charset>
|
||
</encoder>
|
||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||
<!--设置文件命名格式-->
|
||
<fileNamePattern>${LOG_FILE_PATH}/error/${APP_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
|
||
<!--设置日志文件大小,超过就重新生成文件,默认10M-->
|
||
<maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
|
||
<!--日志文件保留天数,默认30天-->
|
||
<maxHistory>${LOG_FILE_MAX_HISTORY:-30}</maxHistory>
|
||
</rollingPolicy>
|
||
</appender>
|
||
|
||
<!--DEBUG日志输出到LogStash-->
|
||
<appender name="LOG_STASH_DEBUG" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||
<level>DEBUG</level>
|
||
</filter>
|
||
<destination>${LOG_STASH_HOST}:4560</destination>
|
||
<addDefaultStatusListener>${ENABLE_INNER_LOG}</addDefaultStatusListener>
|
||
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
|
||
<providers>
|
||
<timestamp>
|
||
<timeZone>Asia/Shanghai</timeZone>
|
||
</timestamp>
|
||
<!--自定义日志输出格式-->
|
||
<pattern>
|
||
<pattern>
|
||
{
|
||
"project": "mall",
|
||
"level": "%level",
|
||
"service": "${APP_NAME:-}",
|
||
"pid": "${PID:-}",
|
||
"thread": "%thread",
|
||
"class": "%logger",
|
||
"message": "%message",
|
||
"stack_trace": "%exception{20}"
|
||
}
|
||
</pattern>
|
||
</pattern>
|
||
</providers>
|
||
</encoder>
|
||
</appender>
|
||
|
||
<!--ERROR日志输出到LogStash-->
|
||
<appender name="LOG_STASH_ERROR" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||
<level>ERROR</level>
|
||
<onMatch>ACCEPT</onMatch>
|
||
<onMismatch>DENY</onMismatch>
|
||
</filter>
|
||
<destination>${LOG_STASH_HOST}:4561</destination>
|
||
<addDefaultStatusListener>${ENABLE_INNER_LOG}</addDefaultStatusListener>
|
||
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
|
||
<providers>
|
||
<timestamp>
|
||
<timeZone>Asia/Shanghai</timeZone>
|
||
</timestamp>
|
||
<!--自定义日志输出格式-->
|
||
<pattern>
|
||
<pattern>
|
||
{
|
||
"project": "mall",
|
||
"level": "%level",
|
||
"service": "${APP_NAME:-}",
|
||
"pid": "${PID:-}",
|
||
"thread": "%thread",
|
||
"class": "%logger",
|
||
"message": "%message",
|
||
"stack_trace": "%exception{20}"
|
||
}
|
||
</pattern>
|
||
</pattern>
|
||
</providers>
|
||
</encoder>
|
||
</appender>
|
||
|
||
<!--业务日志输出到LogStash-->
|
||
<appender name="LOG_STASH_BUSINESS" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
||
<destination>${LOG_STASH_HOST}:4562</destination>
|
||
<addDefaultStatusListener>${ENABLE_INNER_LOG}</addDefaultStatusListener>
|
||
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
|
||
<providers>
|
||
<timestamp>
|
||
<timeZone>Asia/Shanghai</timeZone>
|
||
</timestamp>
|
||
<!--自定义日志输出格式-->
|
||
<pattern>
|
||
<pattern>
|
||
{
|
||
"project": "mall",
|
||
"level": "%level",
|
||
"service": "${APP_NAME:-}",
|
||
"pid": "${PID:-}",
|
||
"thread": "%thread",
|
||
"class": "%logger",
|
||
"message": "%message",
|
||
"stack_trace": "%exception{20}"
|
||
}
|
||
</pattern>
|
||
</pattern>
|
||
</providers>
|
||
</encoder>
|
||
</appender>
|
||
|
||
<!--接口访问记录日志输出到LogStash-->
|
||
<appender name="LOG_STASH_RECORD" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
||
<destination>${LOG_STASH_HOST}:4563</destination>
|
||
<addDefaultStatusListener>${ENABLE_INNER_LOG}</addDefaultStatusListener>
|
||
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
|
||
<providers>
|
||
<timestamp>
|
||
<timeZone>Asia/Shanghai</timeZone>
|
||
</timestamp>
|
||
<!--自定义日志输出格式-->
|
||
<pattern>
|
||
<pattern>
|
||
{
|
||
"project": "mall",
|
||
"level": "%level",
|
||
"service": "${APP_NAME:-}",
|
||
"class": "%logger",
|
||
"message": "%message"
|
||
}
|
||
</pattern>
|
||
</pattern>
|
||
</providers>
|
||
</encoder>
|
||
</appender>
|
||
|
||
<!--控制框架输出日志-->
|
||
<logger name="org.slf4j" level="INFO"/>
|
||
<logger name="springfox" level="INFO"/>
|
||
<logger name="io.swagger" level="INFO"/>
|
||
<logger name="org.springframework" level="INFO"/>
|
||
<logger name="org.hibernate.validator" level="INFO"/>
|
||
|
||
<root level="DEBUG">
|
||
<appender-ref ref="CONSOLE"/>
|
||
<appender-ref ref="FILE_DEBUG"/>
|
||
<appender-ref ref="FILE_ERROR"/>
|
||
<appender-ref ref="LOG_STASH_DEBUG"/>
|
||
<appender-ref ref="LOG_STASH_ERROR"/>
|
||
</root>
|
||
|
||
<logger name="com.macro.mall.common.log.WebLogAspect" level="DEBUG">
|
||
<appender-ref ref="LOG_STASH_RECORD"/>
|
||
</logger>
|
||
|
||
<logger name="com.macro.mall" level="DEBUG">
|
||
<appender-ref ref="LOG_STASH_BUSINESS"/>
|
||
</logger>
|
||
</configuration>
|