xujunwei 1 год назад
Родитель
Сommit
dfa310efe7
1 измененных файлов с 76 добавлено и 93 удалено
  1. 76 93
      src/main/resources/logback-spring.xml

+ 76 - 93
src/main/resources/logback-spring.xml

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