Procházet zdrojové kódy

ELK

Signed-off-by: zhangxiaomu <zhangxiaomu@dongkesoft.com>
zhangxiaomu před 2 roky
rodič
revize
db77b2d25b

+ 1 - 1
pom.xml

@@ -92,7 +92,7 @@
                 <includes>
                 <includes>
                     <include>**/*</include>
                     <include>**/*</include>
                 </includes>
                 </includes>
-                <!-- 启用过滤器,过滤器会解析需要过滤的的资源文件,将其中的变量替换成真实的值 -->
+                <!-- 启用过滤器,过滤器会解析需要过滤的的资源文件,将其中的@environment@变量替换成真实的值 -->
                 <filtering>true</filtering>
                 <filtering>true</filtering>
             </resource>
             </resource>
             <resource> <!--日志配置文件-->
             <resource> <!--日志配置文件-->

+ 43 - 148
src/main/resources/logback-spring.xml

@@ -1,191 +1,86 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<configuration  scan="true" scanPeriod="10 seconds">
+<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
+<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
+<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。
+                 当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
+<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
+<configuration scan="true" scanPeriod="10 seconds">
 
 
-    <!--<include resource="org/springframework/boot/logging/logback/base.xml" />-->
-
-    <springProperty scope="context" name="log.path" source="logback.file" defaultValue="log"/>
     <contextName>logback</contextName>
     <contextName>logback</contextName>
-    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
-    <!--<property name="log.path" value="E:/logsNew" />-->
 
 
-    <!-- 彩色日志 -->
+    <springProperty scope="context" name="LOG_HOME" source="logback.file" defaultValue="log"/>
+    <springProperty scope="context" name="APP_NAME" source="spring.application.name"/>
+
     <!-- 彩色日志依赖的渲染类 -->
     <!-- 彩色日志依赖的渲染类 -->
     <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
     <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.WhitespaceThrowableProxyConverter" />
     <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
     <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([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
-
-
-    <!--输出到控制台-->
+    <property name="CONSOLE_LOG_PATTERN_SW" value="${CONSOLE_LOG_PATTERN_SW:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} [%red(%tid)] %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
-        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>info</level>
-        </filter>
-        <encoder>
-            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
-            <!-- 设置字符集 -->
-            <charset>UTF-8</charset>
-        </encoder>
-    </appender>
-
-
-    <!--输出到文件-->
-
-    <!-- 时间滚动输出 level为 DEBUG 日志 -->
-    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文件的路径及文件名 -->
-        <!--<file>${log.path}/log_debug.log</file>-->
-        <!--日志文件输出格式-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 日志归档 -->
-            <fileNamePattern>${log.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>10MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文件保留天数-->
-            <maxHistory>30</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文件只记录debug级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>debug</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 时间滚动输出 level为 INFO 日志 -->
-    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文件的路径及文件名 -->
-        <!--<file>${log.path}/log_info.log</file>-->
-        <!--日志文件输出格式-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset>
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 每天日志归档路径以及格式 -->
-            <fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>10MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文件保留天数-->
-            <maxHistory>30</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文件只记录info级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>info</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 时间滚动输出 level为 WARN 日志 -->
-    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文件的路径及文件名 -->
-        <!--<file>${log.path}/log_warn.log</file>-->
-        <!--日志文件输出格式-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
+                <Pattern>${CONSOLE_LOG_PATTERN_SW}</Pattern>
+            </layout>
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
         </encoder>
         </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>10MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文件保留天数-->
-            <maxHistory>30</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文件只记录warn级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>warn</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
     </appender>
     </appender>
-    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文件的路径及文件名 -->
-        <!--<file>${log.path}/log_error.log</file>-->
-        <!--日志文件输出格式-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+
+    <!-- 2. 输出到文件  -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 当前记录的日志文档完整路径 -->
+        <!--        <file>${LOG_HOME}/log.log</file>-->
+        <!--日志文档输出格式-->
+        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
+                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %tid %t %logger{36}: %msg%n</pattern>
+            </layout>
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
         </encoder>
         </encoder>
         <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
         <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <fileNamePattern>${LOG_HOME}/${APP_NAME}-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                 <maxFileSize>10MB</maxFileSize>
                 <maxFileSize>10MB</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
             </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文保留天数-->
+            <!--日志文档保留天数-->
             <maxHistory>30</maxHistory>
             <maxHistory>30</maxHistory>
         </rollingPolicy>
         </rollingPolicy>
-        <!-- 此日志文件只记录ERROR级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
     </appender>
     </appender>
 
 
     <!--
     <!--
         <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
         <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
         以及指定<appender>。<logger>仅有一个name属性,
         以及指定<appender>。<logger>仅有一个name属性,
-        一个可选的level和一个可选的addtivity属性。
+        一个可选的level和一个可选的 addtivity 属性。
         name:用来指定受此logger约束的某一个包或者具体的某一个类。
         name:用来指定受此logger约束的某一个包或者具体的某一个类。
         level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
         level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
               还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
               还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
               如果未设置此属性,那么当前logger将会继承上级的级别。
               如果未设置此属性,那么当前logger将会继承上级的级别。
         addtivity:是否向上级logger传递打印信息。默认是true。
         addtivity:是否向上级logger传递打印信息。默认是true。
     -->
     -->
-    <logger name="org.springframework.web" level="info"/>
-    <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
-    <!-- 使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
-        第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
-        第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别: -->
 
 
-    <!-- mybatis日志打印-->
-    <!--<logger name="org.apache.ibatis" level="DEBUG" />-->
-    <!--<logger name="java.sql" level="DEBUG" />-->
-    <!--<logger name="com.dongke.hn.dao.mapper" level="DEBUG"></logger>-->
-
-
-    <!-- root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
+    <!--
+        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
         level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
         level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
         不能设置为INHERITED或者同义词NULL。默认是DEBUG
         不能设置为INHERITED或者同义词NULL。默认是DEBUG
-        可以包含零个或多个元素,标识这个appender将会添加到这个logger。 -->
+        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
+    -->
 
 
-    <!--开发环境:打印控制台-->
+    <!-- 开发环境输出至控制台 -->
     <springProfile name="dev">
     <springProfile name="dev">
-        <logger name="com.sfDev.view" level="debug"/>
+        <logger name="com.dk.bpm.mapper" level="TRACE"/>
+        <root level="INFO">
+            <appender-ref ref="CONSOLE" />
+        </root>
     </springProfile>
     </springProfile>
 
 
-    <root level="info">
-        <appender-ref ref="CONSOLE" />
-        <appender-ref ref="DEBUG_FILE" />
-        <appender-ref ref="INFO_FILE" />
-        <appender-ref ref="WARN_FILE" />
-        <appender-ref ref="ERROR_FILE" />
-    </root>
-
-    <!--生产环境:输出到文件-->
-    <springProfile name="pro">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="WARN_FILE" />
+    <!-- 非开发环境输出至文件 -->
+    <springProfile name="!(dev)">
+        <!--todo 将mybatis-plus的sql记录的日志文件 注意name需修改mapper包名 level=DEBUG:打印语句 TRACE:打印结果 -->
+        <logger name="com.dk.bpm.mapper" level="TRACE"/>
+        <root level="INFO">
+            <appender-ref ref="FILE" />
         </root>
         </root>
     </springProfile>
     </springProfile>
 
 
-</configuration>
+</configuration>

+ 0 - 8
src/main/resources/mybatis-config.xml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
-<configuration>
-    <settings>
-        <!-- add LOG -->
-        <setting name="logImpl" value="STDOUT_LOGGING" />
-    </settings>
-</configuration>

+ 1 - 1
src/main/resources/test/bootstrap.yml

@@ -67,7 +67,7 @@ spring:
       max-file-size: 10MB
       max-file-size: 10MB
 
 
 logback:
 logback:
-  file: /data/java_project/dk_mes/${spring.application.name}/${spring.application.name}_logs
+  file: /data/java_project/dk_mes/logs
 
 
 feign:
 feign:
   sentinel:
   sentinel: