소스 검색

修复日志会输出两次的问题

lighter 2 달 전
부모
커밋
9a59b973df
1개의 변경된 파일26개의 추가작업 그리고 59개의 파일을 삭제
  1. 26 59
      src/main/resources/logback-spring.xml

+ 26 - 59
src/main/resources/logback-spring.xml

@@ -1,30 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
-    <include resource="org/springframework/boot/logging/logback/base.xml" />
-    <springProperty scope="context" name="serviceName" source="spring.application.name" defaultValue="wxservice-server"/>
+    <!-- 不包含base.xml,因为我们自定义所有appender -->
+    <!-- <include resource="org/springframework/boot/logging/logback/base.xml" /> -->
+
+    <springProperty scope="context" name="serviceName" source="spring.application.name" defaultValue="web-server"/>
     <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
         <destination>172.16.32.134:5044</destination>
-
         <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
             <customFields>{"service":"${serviceName}"}</customFields>
             <includeContext>false</includeContext>
         </encoder>
     </appender>
-    <root level="INFO">
-        <!-- 配置哪个级别使用该appender -->
-        <appender-ref ref="LOGSTASH" />
-    </root>
 
-
-    <springProperty scope="context" name="LOG_HOME" source="logging.path"
-                    defaultValue="logs"/>
+    <springProperty name="application_name" scope="context" source="spring.application.name"/>
+    <springProperty scope="context" name="LOG_HOME" source="logging.path" defaultValue="logs"/>
 
     <!-- 日志级别 -->
     <springProperty scope="context" name="LOG_ROOT_LEVEL" source="logging.level.root" defaultValue="INFO"/>
 
-    <!--  标识这个"STDOUT" 将会添加到这个logger -->
-    <springProperty scope="context" name="STDOUT" source="log.stdout" defaultValue="STDOUT"/>
-
     <!-- 日志文件名称-->
     <property name="LOG_PREFIX" value="spring-boot-logback"/>
 
@@ -43,9 +36,7 @@
     <!-- 配置日志的滚动时间 ,value表示保留日志的天数,0表示永久保存 -->
     <property name="MAX_HISTORY" value="0"/>
 
-
     <!-- 彩色日志 -->
-    <!-- 彩色日志依赖的渲染类 -->
     <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
     <conversionRule conversionWord="wex"
                     converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
@@ -57,35 +48,24 @@
 
     <!--输出到控制台-->
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <!-- 输出的日志内容格式化-->
         <layout class="ch.qos.logback.classic.PatternLayout">
             <pattern>${CONSOLE_LOG_PATTERN}</pattern>
         </layout>
     </appender>
 
     <!--输出到文件-->
-    <appender name="0" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    </appender>
-
-    <!-- 定义 ALL 日志的输出方式:-->
     <appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!--日志文件路径,日志文件名称-->
         <File>${LOG_HOME}/all_${LOG_PREFIX}.log</File>
 
-        <!-- 设置滚动策略,当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-
-            <!--日志文件路径,新的 ALL 日志文件名称,“ i ” 是个变量 -->
-            <FileNamePattern>${LOG_DIR}/all_${LOG_PREFIX}%i.log</FileNamePattern>
-
-            <!-- 配置日志的滚动时间 ,表示只保留最近 10 天的日志-->
+        <!-- 使用 SizeAndTimeBasedRollingPolicy 替代 TimeBasedRollingPolicy -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!--日志文件路径,新的 ALL 日志文件名称,使用 %i 作为索引 -->
+            <FileNamePattern>${LOG_DIR}/all_${LOG_PREFIX}.%i.log</FileNamePattern>
+            <!-- 保留日志的历史天数 -->
             <MaxHistory>${MAX_HISTORY}</MaxHistory>
-
-            <!--当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB-->
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-
+            <!-- 单个日志文件的最大大小 -->
+            <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
         </rollingPolicy>
 
         <!-- 输出的日志内容格式化-->
@@ -94,9 +74,7 @@
         </layout>
     </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>
             <OnMismatch>DENY</OnMismatch>
@@ -105,19 +83,14 @@
         <!--日志文件路径,日志文件名称-->
         <File>${LOG_HOME}/err_${LOG_PREFIX}.log</File>
 
-        <!-- 设置滚动策略,当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-
-            <!--日志文件路径,新的 ERR 日志文件名称,“ i ” 是个变量 -->
-            <FileNamePattern>${LOG_DIR}/err_${LOG_PREFIX}%i.log</FileNamePattern>
-
-            <!-- 配置日志的滚动时间 ,表示只保留最近 10 天的日志-->
+        <!-- 使用 SizeAndTimeBasedRollingPolicy 替代 TimeBasedRollingPolicy -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!--日志文件路径,新的 ERR 日志文件名称,使用 %i 作为索引 -->
+            <FileNamePattern>${LOG_DIR}/err_${LOG_PREFIX}.%i.log</FileNamePattern>
+            <!-- 保留日志的历史天数 -->
             <MaxHistory>${MAX_HISTORY}</MaxHistory>
-
-            <!--当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB-->
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
+            <!-- 单个日志文件的最大大小 -->
+            <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
         </rollingPolicy>
 
         <!-- 输出的日志内容格式化-->
@@ -126,22 +99,16 @@
         </layout>
     </appender>
 
-    <!-- additivity 设为false,则logger内容不附加至root ,配置以配置包下的所有类的日志的打印,级别是 ERROR-->
-
     <logger name="org.springframework" level="ERROR"/>
     <logger name="org.apache.commons" level="ERROR"/>
-    <!--    <logger name="th.itcenter.apps.controller.logger.LoggingController" level="WARN"/>-->
-    <!-- ${LOG_ROOT_LEVEL} 日志级别 -->
-    <root level="${LOG_ROOT_LEVEL}">
-
-        <!-- 标识这个"${STDOUT}"将会添加到这个logger -->
-        <appender-ref ref="${STDOUT}"/>
 
-        <!-- FILE_ALL 日志输出添加到 logger -->
+    <root level="${LOG_ROOT_LEVEL}">
+        <!-- 控制台输出 -->
+        <appender-ref ref="STDOUT"/>
+        <!-- 本地文件输出 -->
         <appender-ref ref="FILE_ALL"/>
-
-        <!-- FILE_ERROR 日志输出添加到 logger -->
         <appender-ref ref="FILE_ERROR"/>
+        <!-- Logstash输出 -->
+        <appender-ref ref="LOGSTASH"/>
     </root>
-
 </configuration>