|
|
@@ -1,119 +1,102 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<configuration debug="false">
|
|
|
- <!--读取 application.yml 内容-->
|
|
|
- <springProperty scope="context" name="loggerLevel" source="logback.level" defaultValue="info"/>
|
|
|
- <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
|
|
|
- <property name="contextName" value="wvp-gb28181-pro" />
|
|
|
- <property name="LOG_HOME" value="./log/${contextName}" />
|
|
|
- <springProperty scope="context" name="spring.profiles.active" source="spring.profiles.active"/>
|
|
|
+ <!--定义日志文件的存储地址 -->
|
|
|
+ <springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
|
|
|
+ <property name="LOG_HOME" value="logs" />
|
|
|
|
|
|
- <!-- 彩色日志 -->
|
|
|
- <!-- 彩色日志依赖的渲染类 -->
|
|
|
- <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
|
|
|
- <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
|
|
|
- <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
|
|
|
- <!-- 彩色日志格式 -->
|
|
|
- <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%clr(%X{traceId}), %20.20t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
|
|
|
-
|
|
|
- <!-- logstash输出 -->
|
|
|
- <if condition='property("spring.profiles.active").equals("prod")'>
|
|
|
- <then>
|
|
|
- <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
|
|
- <destination>106.52.24.234:15088</destination>
|
|
|
- <!-- 日志输出编码 -->
|
|
|
- <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
|
|
|
- <providers>
|
|
|
- <timestamp>
|
|
|
- <timeZone>GMT+8</timeZone>
|
|
|
- </timestamp>
|
|
|
- <pattern>
|
|
|
- <pattern>
|
|
|
- {
|
|
|
- "serviceName": "${contextName}",
|
|
|
- "time":"%d{yyyy-MM-dd HH:mm:ss.SSS}",
|
|
|
- "level": "%level",
|
|
|
- "traceId": "%X{traceId}",
|
|
|
- "clientIp": "%X{ip}",
|
|
|
- "thread": "%thread",
|
|
|
- "class": "%logger",
|
|
|
- "msg": "%message"
|
|
|
- }
|
|
|
- </pattern>
|
|
|
- </pattern>
|
|
|
- </providers>
|
|
|
- </encoder>
|
|
|
- </appender>
|
|
|
- </then>
|
|
|
- </if>
|
|
|
+ <substitutionProperty name="log.pattern"
|
|
|
+ value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr([%thread]) %clr(%5p) %clr(---){faint} %clr(%logger{50}){cyan}%clr(:) %clr(%L){cyan} %m%n%wEx"/>
|
|
|
+ <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
|
|
|
+ <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
|
|
|
+ <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
|
|
|
|
|
|
<!-- 控制台输出 -->
|
|
|
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
|
|
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
|
|
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
|
|
- <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
|
|
- <!--<pattern>%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%thread] %-5level %logger{50} - %msg%n</pattern>-->
|
|
|
- <pattern>${CONSOLE_LOG_PATTERN}</pattern>
|
|
|
+ <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
|
|
|
+ <pattern>${log.pattern}</pattern>
|
|
|
+ <charset>UTF-8</charset>
|
|
|
</encoder>
|
|
|
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter" >
|
|
|
+ <!--与ThresholdFilter的区别,允许onmatch-->
|
|
|
+ <!--设置日志级别 接收info级别的日志-->
|
|
|
+ <level>DEBUG</level>
|
|
|
+ </filter>
|
|
|
</appender>
|
|
|
|
|
|
- <!-- 按照每天生成日志文件 -->
|
|
|
- <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
- <File>${LOG_HOME}/application.log</File>
|
|
|
+ <!-- 按照每天生成日志文件 DEBUG以上级别的日志,仅用于测试环境,正式环境为info级别以上的日志-->
|
|
|
+ <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+
|
|
|
+ <!-- 文件路径 -->
|
|
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
|
|
- <!--日志文件输出的文件名-->
|
|
|
- <FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
|
|
- <maxFileSize>50MB</maxFileSize>
|
|
|
- <MaxHistory>7</MaxHistory>
|
|
|
- <totalSizeCap>1GB</totalSizeCap>
|
|
|
+ <!--历史日志文件输出的文件名 -->
|
|
|
+ <FileNamePattern>${LOG_HOME}/wvp-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
|
|
+ <!--日志文件保留天数 -->
|
|
|
+ <MaxHistory>30</MaxHistory>
|
|
|
+ <maxFileSize>20MB</maxFileSize>
|
|
|
</rollingPolicy>
|
|
|
-
|
|
|
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
|
|
- <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
|
|
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId},%thread] %-5level %logger{50} - %msg%n</pattern>
|
|
|
+ <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
|
|
|
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
|
|
|
+ <charset>UTF-8</charset>
|
|
|
</encoder>
|
|
|
-
|
|
|
- </appender>
|
|
|
-
|
|
|
- <appender name="ERROR-LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
|
|
- <level>ERROR</level>
|
|
|
+ <!--与ThresholdFilter的区别,允许onmatch-->
|
|
|
+ <!--设置日志级别 接收info级别的日志-->
|
|
|
+ <level>DEBUG</level>
|
|
|
</filter>
|
|
|
- <!--滚动策略-->
|
|
|
- <File>${LOG_HOME}/error.log</File>
|
|
|
- <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
|
|
|
- <!--日志文件输出的文件名-->
|
|
|
- <FileNamePattern>${LOG_HOME}/error.%i.log.zip</FileNamePattern>
|
|
|
- <minIndex>1</minIndex>
|
|
|
- <maxIndex>7</maxIndex>
|
|
|
- </rollingPolicy>
|
|
|
+ </appender>
|
|
|
|
|
|
- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
|
|
- <maxFileSize>100MB</maxFileSize>
|
|
|
- </triggeringPolicy>
|
|
|
+ <!-- 生成 error格式日志开始 -->
|
|
|
+ <appender name="RollingFileError" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
|
|
|
- <encoder>
|
|
|
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId},%thread] %-5level %logger{50} - %msg%n</pattern>
|
|
|
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
|
|
+ <!--历史日志文件输出的文件名 -->
|
|
|
+ <FileNamePattern>${LOG_HOME}/error-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
|
|
+ <!--日志文件保留天数 -->
|
|
|
+ <MaxHistory>30</MaxHistory>
|
|
|
+ <maxFileSize>20MB</maxFileSize>
|
|
|
+ </rollingPolicy>
|
|
|
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
|
|
+ <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
|
|
|
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
|
|
|
+ <charset>UTF-8</charset>
|
|
|
</encoder>
|
|
|
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
|
|
+ <!--设置日志级别,过滤掉info日志,只输入error日志-->
|
|
|
+ <level>WARN</level>
|
|
|
+ </filter>
|
|
|
+ </appender>
|
|
|
|
|
|
+ <!-- 生成 SIP日志追加 -->
|
|
|
+ <appender name="SipRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
|
|
+ <!--历史日志文件输出的文件名 -->
|
|
|
+ <FileNamePattern>${LOG_HOME}/sip-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
|
|
+ <!--日志文件保留天数 -->
|
|
|
+ <MaxHistory>30</MaxHistory>
|
|
|
+ <maxFileSize>50MB</maxFileSize>
|
|
|
+ </rollingPolicy>
|
|
|
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
|
|
+ <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
|
|
|
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
|
|
|
+ <charset>UTF-8</charset>
|
|
|
+ </encoder>
|
|
|
</appender>
|
|
|
|
|
|
- <!-- <logger name="com.micro.cloud.management.dao" level="WARN"/>-->
|
|
|
|
|
|
<!-- 日志输出级别 -->
|
|
|
- <root level="${loggerLevel}">
|
|
|
- <appender-ref ref="CONSOLE" />
|
|
|
- <appender-ref ref="FILE" />
|
|
|
- <appender-ref ref="ERROR-LOG" />
|
|
|
- <if condition='property("spring.profiles.active").equals("prod")'>
|
|
|
- <then>
|
|
|
- <appender-ref ref="logstash"/>
|
|
|
- </then>
|
|
|
- </if>
|
|
|
+ <root level="INFO">
|
|
|
+ <appender-ref ref="STDOUT" />
|
|
|
</root>
|
|
|
|
|
|
- <!--对指定包设置日志格式-->
|
|
|
- <logger name="org.apache.http" level="WARN"></logger>
|
|
|
- <logger name="org.springframework" level="WARN"></logger>
|
|
|
- <logger name="springfox" level="WARN"></logger>
|
|
|
- <logger name="com.netflix" level="WARN"></logger>
|
|
|
- <logger name="org.redisson" level="WARN"></logger>
|
|
|
+ <logger name="com.genersoft.iot.vmp" level="info" additivity="true">
|
|
|
+ <appender-ref ref="RollingFileError"/>
|
|
|
+ <appender-ref ref="RollingFile"/>
|
|
|
+ </logger>
|
|
|
+
|
|
|
+ <logger name="com.genersoft.iot.vmp.gb28181.conf.StackLoggerImpl" level="info" additivity="true">
|
|
|
+ <appender-ref ref="SipRollingFile" />
|
|
|
+ </logger>
|
|
|
+
|
|
|
</configuration>
|