丁云鹏 há 9 meses atrás
pai
commit
1841a8adee

+ 47 - 23
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/extractor/ExtractorUtils.java

@@ -3,14 +3,19 @@ package com.tzld.piaoquan.recommend.server.service.rank.extractor;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+
+import com.google.common.collect.Lists;
 import org.xm.Similarity;
+
 public class ExtractorUtils {
 
     public static double sigmoid(double x) {
         return 1.0 / (1.0 + Math.exp(-x));
     }
+
     public static int findInsertPosition(double[] sortedArray, double target) {
         int low = 0;
         int high = sortedArray.length - 1;
@@ -34,6 +39,7 @@ public class ExtractorUtils {
 
         return low; // 返回low作为插入点
     }
+
     public static Double[] funcC34567ForTags(String tags, String title) {
         String[] tagsList = tags.split(",");
         int d1 = 0;
@@ -59,23 +65,26 @@ public class ExtractorUtils {
         Double[] result = {(double) d1, d3, d4};
         return result;
     }
-    public static Double calDiv(double a, double b){
-        if (a == 0 || b == 0){
+
+    public static Double calDiv(double a, double b) {
+        if (a == 0 || b == 0) {
             return 0D;
         }
         return a / b;
     }
-    public static Double calLog(double a){
-        if (a <= 0){
+
+    public static Double calLog(double a) {
+        if (a <= 0) {
             return 0D;
         }
         return Math.log(a + 1.0);
     }
-    public static Double division(String s1, String s2, Map<String, String> maps){
+
+    public static Double division(String s1, String s2, Map<String, String> maps) {
         double rate = 0.0;
-        if (maps.containsKey(s1) && maps.containsKey(s2)){
+        if (maps.containsKey(s1) && maps.containsKey(s2)) {
             Double d1 = Double.valueOf(maps.get(s1));
-            if (isDoubleEqualToZero(d1)){
+            if (isDoubleEqualToZero(d1)) {
                 return rate;
             }
             Double d2 = Double.valueOf(maps.get(s2));
@@ -83,9 +92,10 @@ public class ExtractorUtils {
         }
         return rate;
     }
-    public static Double divisionDouble(Double d1, Double d2){
+
+    public static Double divisionDouble(Double d1, Double d2) {
         double rate = 0.0;
-        if (isDoubleEqualToZero(d1)){
+        if (isDoubleEqualToZero(d1)) {
             return rate;
         }
         rate = d2 / d1;
@@ -99,7 +109,6 @@ public class ExtractorUtils {
     }
 
 
-
     public static double calculateVariance(List<Double> numbers) {
         double average = numbers.stream()
                 .mapToDouble(Double::doubleValue)
@@ -130,7 +139,7 @@ public class ExtractorUtils {
 
         for (int i = 0; i < numbers.size() - 1; i++) {
             Double diff = 0.0;
-            if (!isDoubleEqualToZero(numbers.get(i))){
+            if (!isDoubleEqualToZero(numbers.get(i))) {
                 diff = (numbers.get(i + 1) - numbers.get(i)) / numbers.get(i);
             }
             differences.add(diff);
@@ -167,7 +176,7 @@ public class ExtractorUtils {
         if (bucket < 0) {
             bucket = 0;
         }
-        return (int)bucket;
+        return (int) bucket;
     }
 
     // 针对大于1的数字,进行分桶。
@@ -179,20 +188,35 @@ public class ExtractorUtils {
         if (bucket < 0) {
             bucket = 0;
         }
-        return (int)bucket;
+        return (int) bucket;
     }
 
     public static void main(String[] args) {
-//        System.out.println(ceilLogRate(0.0002));
-//        System.out.println(ceilLogRate(0.01));
-//        System.out.println(ceilLogRate(0.2));
-//        System.out.println(ceilLogRate(4.));
-//        System.out.println(bucketCnt(1.));
-//        System.out.println(bucketCnt(20.));
-//        System.out.println(bucketCnt(500.));
-//        System.out.println(bucketCnt(50000.));
-
-        System.out.println(generateHourStrings("2024011603", 5));
+
+        funcC34567ForTags("1", "1");
+
+        List<String> tags = Lists.newArrayList(
+                "知道,小常识,老百姓,真情,人间,预防,可惜,血管,水果,推荐", // 0
+                "按摩,心脏,老歌,记住,骗局,小心,注意,建议,教师节,风油精", // 105
+                "听的歌,送给,心情,建议,真情,人间,预防,可惜,知道,伟人", // 1
+                "教师节,知道,家人,朋友,妙用,好了吗,收下,骗局,小心,注意", // 17
+                "教师节,知道,老歌,记住,风油精,妙用,按摩,心脏,早安,创意" // 107
+
+        );
+
+        String title = "知识点非常珍贵,请朋友们收好_";
+
+        for(int j =0 ;j< 10; j++) {
+            Collections.shuffle(tags);
+            for (int i = 0; i < tags.size(); i++) {
+                long start = System.currentTimeMillis();
+                funcC34567ForTags(tags.get(i), title);
+                long end = System.currentTimeMillis();
+                System.out.println(tags.get(i) + " cost : " + (end - start));
+            }
+        }
+
+        //System.out.println(generateHourStrings("2024011603", 5));
 
     }
 

+ 6 - 13
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV552.java

@@ -61,13 +61,13 @@ public class RankStrategy4RegionMergeModelV552 extends RankStrategy4RegionMergeM
         List<Video> rovRecallRank = new ArrayList<>(v0);
         //-------------------return相似召回------------------
         List<Video> v6 = extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM);
-        v6 = v6.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
+        v6 = v6.stream().filter(r-> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
         v6 = v6.subList(0, Math.min(mergeWeight.getOrDefault("v6", 5.0).intValue(), v6.size()));
         rovRecallRank.addAll(v6);
         setVideo.addAll(v6.stream().map(Video::getVideoId).collect(Collectors.toSet()));
         //-------------------新地域召回------------------
         List<Video> v1 = extractAndSort(param, RegionRealtimeRecallStrategyV1.PUSH_FORM);
-        v1 = v1.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
+        v1 = v1.stream().filter(r-> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
         v1 = v1.subList(0, Math.min(mergeWeight.getOrDefault("v1", 5.0).intValue(), v1.size()));
         rovRecallRank.addAll(v1);
         setVideo.addAll(v1.stream().map(Video::getVideoId).collect(Collectors.toSet()));
@@ -235,10 +235,7 @@ public class RankStrategy4RegionMergeModelV552 extends RankStrategy4RegionMergeM
                     for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
                         String tags = c34567Map.getOrDefault(name + "_" + key_time, "");
                         if (!tags.isEmpty()) {
-                            Stopwatch stopwatch2 = Stopwatch.createStarted();
                             Double[] doubles = ExtractorUtils.funcC34567ForTags(tags, title);
-                            log.info("funcC34567ForTags cost={} tags={} title={}",
-                                    stopwatch2.elapsed(TimeUnit.MILLISECONDS), tags, title);
                             featureMap.put(name + "_" + key_time + "_matchnum", doubles[0]);
                             featureMap.put(name + "_" + key_time + "_maxscore", doubles[1]);
                             featureMap.put(name + "_" + key_time + "_avgscore", doubles[2]);
@@ -247,7 +244,6 @@ public class RankStrategy4RegionMergeModelV552 extends RankStrategy4RegionMergeM
                 }
             }
 
-
             if (!vid.isEmpty()) {
                 for (String key_feature : Arrays.asList("c8_feature", "c9_feature")) {
                     for (String key_action : Arrays.asList("share", "return")) {
@@ -309,15 +305,12 @@ public class RankStrategy4RegionMergeModelV552 extends RankStrategy4RegionMergeM
             item.featureMap = featureMap;
         }
 
-        log.info("bucket feature cost={}", stopwatch.elapsed(TimeUnit.MILLISECONDS));
-        stopwatch.reset().start();
-
         // 3 排序
         Map<String, String> sceneFeatureMap = new HashMap<>(0);
 
         List<RankItem> items = ScorerUtils.getScorerPipeline("feeds_score_config_20240807.conf")
                 .scoring(sceneFeatureMap, userFeatureMap, rankItems);
-        String redisScoreKey = mergeWeight.getOrDefault("redisScoreKey", 0.0) < 0.5 ? "redis:vid_hasreturn_rov:" : "redis:vid_hasreturn_rov_7d:";
+        String redisScoreKey =  mergeWeight.getOrDefault("redisScoreKey", 0.0) < 0.5 ? "redis:vid_hasreturn_rov:" : "redis:vid_hasreturn_rov_7d:";
         Map<String, Map<String, String>> vid2MapFeature = this.getVideoRedisFeature(vids, redisScoreKey);
         List<Video> result = new ArrayList<>();
         String hasReturnRovKey = mergeWeight.getOrDefault("hasReturnRovKey", 1.0) < 0.5 ? "rate_1" : "rate_n";
@@ -332,11 +325,11 @@ public class RankStrategy4RegionMergeModelV552 extends RankStrategy4RegionMergeM
             item.getScoresMap().put("fmRovOrigin", fmRovOrigin);
             double fmRov = restoreScore(fmRovOrigin);
             item.getScoresMap().put("fmRov", fmRov);
-            if (chooseFunction == 0) {
+            if (chooseFunction == 0){
                 score = fmRov * (1 + hasReturnRovScore);
-            } else if (chooseFunction == 1) {
+            }else if (chooseFunction == 1){
                 score = fmRov * (1 + Math.log(hasReturnRovScore + 1));
-            } else {
+            }else {
                 score = fmRov * ExtractorUtils.sigmoid(hasReturnRovScore);
             }
 

+ 297 - 297
recommend-server-service/src/main/resources/logback.xml

@@ -6,319 +6,319 @@
 <configuration scan="true" scanPeriod="10 seconds">
 
     <!--为了防止进程退出时,内存中的数据丢失,请加上此选项-->
-    <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
+<!--    <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>-->
 
-    <!-- 日志上下文名称 -->
-    <contextName>logback</contextName>
+<!--    &lt;!&ndash; 日志上下文名称 &ndash;&gt;-->
+<!--    <contextName>logback</contextName>-->
 
-    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
-    <!-- 日志输出格式 -->
-    <property name="LOG_PATTERN"
-              value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}\\(%L\\) - %msg%n"/>
-    <property name="mdcFields" value="traceId,appType"></property>
+<!--    &lt;!&ndash; name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 &ndash;&gt;-->
+<!--    &lt;!&ndash; 日志输出格式 &ndash;&gt;-->
+<!--    <property name="LOG_PATTERN"-->
+<!--              value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}\\(%L\\) - %msg%n"/>-->
+<!--    <property name="mdcFields" value="traceId,appType"></property>-->
 
-    <!-- spring property使用方式 -->
-    <springProperty name="LOG_PATH" source="logging.file.path"/>
-    <springProperty name="aliyun_log_endpoint" source="aliyun.log.endpoint"/>
-    <springProperty name="aliyun_log_accessKeyId" source="aliyun.log.accessKeyId"/>
-    <springProperty name="aliyun_log_accessKeySecret" source="aliyun.log.accessKeySecret"/>
-    <springProperty name="aliyun_log_project" source="aliyun.log.project"/>
+<!--    &lt;!&ndash; spring property使用方式 &ndash;&gt;-->
+<!--    <springProperty name="LOG_PATH" source="logging.file.path"/>-->
+<!--    <springProperty name="aliyun_log_endpoint" source="aliyun.log.endpoint"/>-->
+<!--    <springProperty name="aliyun_log_accessKeyId" source="aliyun.log.accessKeyId"/>-->
+<!--    <springProperty name="aliyun_log_accessKeySecret" source="aliyun.log.accessKeySecret"/>-->
+<!--    <springProperty name="aliyun_log_project" source="aliyun.log.project"/>-->
 
-    <!-- 彩色日志 -->
-    <!-- 彩色日志依赖的渲染类 -->
-    <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([%15.15t]){faint} %clr(%-40.40logger{39}\\(%L\\)){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+<!--    &lt;!&ndash; 彩色日志 &ndash;&gt;-->
+<!--    &lt;!&ndash; 彩色日志依赖的渲染类 &ndash;&gt;-->
+<!--    <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"/>-->
+<!--    &lt;!&ndash; 彩色日志格式 &ndash;&gt;-->
+<!--    <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(-&#45;&#45;){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}\\(%L\\)){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>-->
 
-    <!--输出到控制台-->
-    <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>
+<!--    &lt;!&ndash;输出到控制台&ndash;&gt;-->
+<!--    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">-->
+<!--        &lt;!&ndash;此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息&ndash;&gt;-->
+<!--        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
+<!--            <level>info</level>-->
+<!--        </filter>-->
+<!--        <encoder>-->
+<!--            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>-->
+<!--            &lt;!&ndash; 设置字符集 &ndash;&gt;-->
+<!--            <charset>UTF-8</charset>-->
+<!--        </encoder>-->
+<!--    </appender>-->
 
-    <!--输出到文件-->
-    <!-- 时间滚动输出 level为 DEBUG 日志 -->
-    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文件的路径及文件名 -->
-        <file>${LOG_PATH}/debug.log</file>
-        <!--日志文件输出格式-->
-        <encoder>
-            <pattern>${LOG_PATTERN}</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>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文件保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文件只记录debug级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>debug</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
+<!--    &lt;!&ndash;输出到文件&ndash;&gt;-->
+<!--    &lt;!&ndash; 时间滚动输出 level为 DEBUG 日志 &ndash;&gt;-->
+<!--    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
+<!--        &lt;!&ndash; 正在记录的日志文件的路径及文件名 &ndash;&gt;-->
+<!--        <file>${LOG_PATH}/debug.log</file>-->
+<!--        &lt;!&ndash;日志文件输出格式&ndash;&gt;-->
+<!--        <encoder>-->
+<!--            <pattern>${LOG_PATTERN}</pattern>-->
+<!--            <charset>UTF-8</charset> &lt;!&ndash; 设置字符集 &ndash;&gt;-->
+<!--        </encoder>-->
+<!--        &lt;!&ndash; 日志记录器的滚动策略,按日期,按大小记录 &ndash;&gt;-->
+<!--        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
+<!--            &lt;!&ndash; 日志归档 &ndash;&gt;-->
+<!--            <fileNamePattern>${LOG_PATH}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>-->
+<!--            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
+<!--                <maxFileSize>100MB</maxFileSize>-->
+<!--            </timeBasedFileNamingAndTriggeringPolicy>-->
+<!--            &lt;!&ndash;日志文件保留天数&ndash;&gt;-->
+<!--            <maxHistory>15</maxHistory>-->
+<!--        </rollingPolicy>-->
+<!--        &lt;!&ndash; 此日志文件只记录debug级别的 &ndash;&gt;-->
+<!--        <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}/info.log</file>
-        <!--日志文件输出格式-->
-        <encoder>
-            <pattern>${LOG_PATTERN}</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>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文件保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文件只记录info级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>info</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
+<!--    &lt;!&ndash; 时间滚动输出 level为 INFO 日志 &ndash;&gt;-->
+<!--    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
+<!--        &lt;!&ndash; 正在记录的日志文件的路径及文件名 &ndash;&gt;-->
+<!--        <file>${LOG_PATH}/info.log</file>-->
+<!--        &lt;!&ndash;日志文件输出格式&ndash;&gt;-->
+<!--        <encoder>-->
+<!--            <pattern>${LOG_PATTERN}</pattern>-->
+<!--            <charset>UTF-8</charset>-->
+<!--        </encoder>-->
+<!--        &lt;!&ndash; 日志记录器的滚动策略,按日期,按大小记录 &ndash;&gt;-->
+<!--        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
+<!--            &lt;!&ndash; 每天日志归档路径以及格式 &ndash;&gt;-->
+<!--            <fileNamePattern>${LOG_PATH}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>-->
+<!--            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
+<!--                <maxFileSize>100MB</maxFileSize>-->
+<!--            </timeBasedFileNamingAndTriggeringPolicy>-->
+<!--            &lt;!&ndash;日志文件保留天数&ndash;&gt;-->
+<!--            <maxHistory>15</maxHistory>-->
+<!--        </rollingPolicy>-->
+<!--        &lt;!&ndash; 此日志文件只记录info级别的 &ndash;&gt;-->
+<!--        <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}/warn.log</file>
-        <!--日志文件输出格式-->
-        <encoder>
-            <pattern>${LOG_PATTERN}</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </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>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文件保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文件只记录warn级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>warn</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
+<!--    &lt;!&ndash; 时间滚动输出 level为 WARN 日志 &ndash;&gt;-->
+<!--    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
+<!--        &lt;!&ndash; 正在记录的日志文件的路径及文件名 &ndash;&gt;-->
+<!--        <file>${LOG_PATH}/warn.log</file>-->
+<!--        &lt;!&ndash;日志文件输出格式&ndash;&gt;-->
+<!--        <encoder>-->
+<!--            <pattern>${LOG_PATTERN}</pattern>-->
+<!--            <charset>UTF-8</charset> &lt;!&ndash; 此处设置字符集 &ndash;&gt;-->
+<!--        </encoder>-->
+<!--        &lt;!&ndash; 日志记录器的滚动策略,按日期,按大小记录 &ndash;&gt;-->
+<!--        <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>100MB</maxFileSize>-->
+<!--            </timeBasedFileNamingAndTriggeringPolicy>-->
+<!--            &lt;!&ndash;日志文件保留天数&ndash;&gt;-->
+<!--            <maxHistory>15</maxHistory>-->
+<!--        </rollingPolicy>-->
+<!--        &lt;!&ndash; 此日志文件只记录warn级别的 &ndash;&gt;-->
+<!--        <filter class="ch.qos.logback.classic.filter.LevelFilter">-->
+<!--            <level>warn</level>-->
+<!--            <onMatch>ACCEPT</onMatch>-->
+<!--            <onMismatch>DENY</onMismatch>-->
+<!--        </filter>-->
+<!--    </appender>-->
 
 
-    <!-- 时间滚动输出 level为 ERROR 日志 -->
-    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文件的路径及文件名 -->
-        <file>${LOG_PATH}/error.log</file>
-        <!--日志文件输出格式-->
-        <encoder>
-            <pattern>${LOG_PATTERN}</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文件保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文件只记录ERROR级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
+<!--    &lt;!&ndash; 时间滚动输出 level为 ERROR 日志 &ndash;&gt;-->
+<!--    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
+<!--        &lt;!&ndash; 正在记录的日志文件的路径及文件名 &ndash;&gt;-->
+<!--        <file>${LOG_PATH}/error.log</file>-->
+<!--        &lt;!&ndash;日志文件输出格式&ndash;&gt;-->
+<!--        <encoder>-->
+<!--            <pattern>${LOG_PATTERN}</pattern>-->
+<!--            <charset>UTF-8</charset> &lt;!&ndash; 此处设置字符集 &ndash;&gt;-->
+<!--        </encoder>-->
+<!--        &lt;!&ndash; 日志记录器的滚动策略,按日期,按大小记录 &ndash;&gt;-->
+<!--        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
+<!--            <fileNamePattern>${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>-->
+<!--            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
+<!--                <maxFileSize>100MB</maxFileSize>-->
+<!--            </timeBasedFileNamingAndTriggeringPolicy>-->
+<!--            &lt;!&ndash;日志文件保留天数&ndash;&gt;-->
+<!--            <maxHistory>15</maxHistory>-->
+<!--        </rollingPolicy>-->
+<!--        &lt;!&ndash; 此日志文件只记录ERROR级别的 &ndash;&gt;-->
+<!--        <filter class="ch.qos.logback.classic.filter.LevelFilter">-->
+<!--            <level>ERROR</level>-->
+<!--            <onMatch>ACCEPT</onMatch>-->
+<!--            <onMismatch>DENY</onMismatch>-->
+<!--        </filter>-->
+<!--    </appender>-->
 
-    <appender name="loghubAppenderInfo" class="com.tzld.piaoquan.recommend.server.common.RecommendLoghubAppender">
-        <!--必选项-->
-        <!-- 账号及网络配置 -->
-        <endpoint>${aliyun_log_endpoint}</endpoint>
-        <accessKeyId>${aliyun_log_accessKeyId}</accessKeyId>
-        <accessKeySecret>${aliyun_log_accessKeySecret}</accessKeySecret>
-        <!-- sls 项目配置 -->
-        <project>${aliyun_log_project}</project>
-        <logStore>info-log</logStore>
-        <!--必选项 (end)-->
-        <!-- 可选项 -->
-        <topic></topic>
-        <source></source>
-        <!-- 可选项 详见 '参数说明'-->
-        <totalSizeInBytes>104857600</totalSizeInBytes>
-        <maxBlockMs>0</maxBlockMs>
-        <ioThreadCount>16</ioThreadCount>
-        <batchSizeThresholdInBytes>524288</batchSizeThresholdInBytes>
-        <batchCountThreshold>4096</batchCountThreshold>
-        <lingerMs>2000</lingerMs>
-        <retries>10</retries>
-        <baseRetryBackoffMs>100</baseRetryBackoffMs>
-        <maxRetryBackoffMs>50000</maxRetryBackoffMs>
-        <!-- 可选项 通过配置 encoder 的 pattern 自定义 log 的格式 -->
-        <!--日志文件输出格式-->
-        <encoder>
-            <pattern>${LOG_PATTERN}</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>INFO</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <mdcFields>
-            ${mdcFields}
-        </mdcFields>
-    </appender>
+<!--    <appender name="loghubAppenderInfo" class="com.tzld.piaoquan.recommend.server.common.RecommendLoghubAppender">-->
+<!--        &lt;!&ndash;必选项&ndash;&gt;-->
+<!--        &lt;!&ndash; 账号及网络配置 &ndash;&gt;-->
+<!--        <endpoint>${aliyun_log_endpoint}</endpoint>-->
+<!--        <accessKeyId>${aliyun_log_accessKeyId}</accessKeyId>-->
+<!--        <accessKeySecret>${aliyun_log_accessKeySecret}</accessKeySecret>-->
+<!--        &lt;!&ndash; sls 项目配置 &ndash;&gt;-->
+<!--        <project>${aliyun_log_project}</project>-->
+<!--        <logStore>info-log</logStore>-->
+<!--        &lt;!&ndash;必选项 (end)&ndash;&gt;-->
+<!--        &lt;!&ndash; 可选项 &ndash;&gt;-->
+<!--        <topic></topic>-->
+<!--        <source></source>-->
+<!--        &lt;!&ndash; 可选项 详见 '参数说明'&ndash;&gt;-->
+<!--        <totalSizeInBytes>104857600</totalSizeInBytes>-->
+<!--        <maxBlockMs>0</maxBlockMs>-->
+<!--        <ioThreadCount>16</ioThreadCount>-->
+<!--        <batchSizeThresholdInBytes>524288</batchSizeThresholdInBytes>-->
+<!--        <batchCountThreshold>4096</batchCountThreshold>-->
+<!--        <lingerMs>2000</lingerMs>-->
+<!--        <retries>10</retries>-->
+<!--        <baseRetryBackoffMs>100</baseRetryBackoffMs>-->
+<!--        <maxRetryBackoffMs>50000</maxRetryBackoffMs>-->
+<!--        &lt;!&ndash; 可选项 通过配置 encoder 的 pattern 自定义 log 的格式 &ndash;&gt;-->
+<!--        &lt;!&ndash;日志文件输出格式&ndash;&gt;-->
+<!--        <encoder>-->
+<!--            <pattern>${LOG_PATTERN}</pattern>-->
+<!--            <charset>UTF-8</charset> &lt;!&ndash; 此处设置字符集 &ndash;&gt;-->
+<!--        </encoder>-->
+<!--        <filter class="ch.qos.logback.classic.filter.LevelFilter">-->
+<!--            <level>INFO</level>-->
+<!--            <onMatch>ACCEPT</onMatch>-->
+<!--            <onMismatch>DENY</onMismatch>-->
+<!--        </filter>-->
+<!--        <mdcFields>-->
+<!--            ${mdcFields}-->
+<!--        </mdcFields>-->
+<!--    </appender>-->
 
-    <appender name="loghubAppenderWarn" class="com.tzld.piaoquan.recommend.server.common.RecommendLoghubAppender">
-        <!--必选项-->
-        <!-- 账号及网络配置 -->
-        <endpoint>${aliyun_log_endpoint}</endpoint>
-        <accessKeyId>${aliyun_log_accessKeyId}</accessKeyId>
-        <accessKeySecret>${aliyun_log_accessKeySecret}</accessKeySecret>
-        <!-- sls 项目配置 -->
-        <project>${aliyun_log_project}</project>
-        <logStore>warn-log</logStore>
-        <!--必选项 (end)-->
-        <!-- 可选项 -->
-        <topic></topic>
-        <source></source>
-        <!-- 可选项 详见 '参数说明'-->
-        <totalSizeInBytes>104857600</totalSizeInBytes>
-        <maxBlockMs>0</maxBlockMs>
-        <ioThreadCount>16</ioThreadCount>
-        <batchSizeThresholdInBytes>524288</batchSizeThresholdInBytes>
-        <batchCountThreshold>4096</batchCountThreshold>
-        <lingerMs>2000</lingerMs>
-        <retries>10</retries>
-        <baseRetryBackoffMs>100</baseRetryBackoffMs>
-        <maxRetryBackoffMs>50000</maxRetryBackoffMs>
-        <!-- 可选项 通过配置 encoder 的 pattern 自定义 log 的格式 -->
-        <!--日志文件输出格式-->
-        <encoder>
-            <pattern>${LOG_PATTERN}</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>WARN</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <mdcFields>
-            ${mdcFields}
-        </mdcFields>
-    </appender>
+<!--    <appender name="loghubAppenderWarn" class="com.tzld.piaoquan.recommend.server.common.RecommendLoghubAppender">-->
+<!--        &lt;!&ndash;必选项&ndash;&gt;-->
+<!--        &lt;!&ndash; 账号及网络配置 &ndash;&gt;-->
+<!--        <endpoint>${aliyun_log_endpoint}</endpoint>-->
+<!--        <accessKeyId>${aliyun_log_accessKeyId}</accessKeyId>-->
+<!--        <accessKeySecret>${aliyun_log_accessKeySecret}</accessKeySecret>-->
+<!--        &lt;!&ndash; sls 项目配置 &ndash;&gt;-->
+<!--        <project>${aliyun_log_project}</project>-->
+<!--        <logStore>warn-log</logStore>-->
+<!--        &lt;!&ndash;必选项 (end)&ndash;&gt;-->
+<!--        &lt;!&ndash; 可选项 &ndash;&gt;-->
+<!--        <topic></topic>-->
+<!--        <source></source>-->
+<!--        &lt;!&ndash; 可选项 详见 '参数说明'&ndash;&gt;-->
+<!--        <totalSizeInBytes>104857600</totalSizeInBytes>-->
+<!--        <maxBlockMs>0</maxBlockMs>-->
+<!--        <ioThreadCount>16</ioThreadCount>-->
+<!--        <batchSizeThresholdInBytes>524288</batchSizeThresholdInBytes>-->
+<!--        <batchCountThreshold>4096</batchCountThreshold>-->
+<!--        <lingerMs>2000</lingerMs>-->
+<!--        <retries>10</retries>-->
+<!--        <baseRetryBackoffMs>100</baseRetryBackoffMs>-->
+<!--        <maxRetryBackoffMs>50000</maxRetryBackoffMs>-->
+<!--        &lt;!&ndash; 可选项 通过配置 encoder 的 pattern 自定义 log 的格式 &ndash;&gt;-->
+<!--        &lt;!&ndash;日志文件输出格式&ndash;&gt;-->
+<!--        <encoder>-->
+<!--            <pattern>${LOG_PATTERN}</pattern>-->
+<!--            <charset>UTF-8</charset> &lt;!&ndash; 此处设置字符集 &ndash;&gt;-->
+<!--        </encoder>-->
+<!--        <filter class="ch.qos.logback.classic.filter.LevelFilter">-->
+<!--            <level>WARN</level>-->
+<!--            <onMatch>ACCEPT</onMatch>-->
+<!--            <onMismatch>DENY</onMismatch>-->
+<!--        </filter>-->
+<!--        <mdcFields>-->
+<!--            ${mdcFields}-->
+<!--        </mdcFields>-->
+<!--    </appender>-->
 
-    <appender name="loghubAppenderError" class="com.tzld.piaoquan.recommend.server.common.RecommendLoghubAppender">
-        <!--必选项-->
-        <!-- 账号及网络配置 -->
-        <endpoint>${aliyun_log_endpoint}</endpoint>
-        <accessKeyId>${aliyun_log_accessKeyId}</accessKeyId>
-        <accessKeySecret>${aliyun_log_accessKeySecret}</accessKeySecret>
-        <!-- sls 项目配置 -->
-        <project>${aliyun_log_project}</project>
-        <logStore>error-log</logStore>
-        <!--必选项 (end)-->
-        <!-- 可选项 -->
-        <topic></topic>
-        <source></source>
-        <!-- 可选项 详见 '参数说明'-->
-        <totalSizeInBytes>104857600</totalSizeInBytes>
-        <maxBlockMs>0</maxBlockMs>
-        <ioThreadCount>16</ioThreadCount>
-        <batchSizeThresholdInBytes>524288</batchSizeThresholdInBytes>
-        <batchCountThreshold>4096</batchCountThreshold>
-        <lingerMs>2000</lingerMs>
-        <retries>10</retries>
-        <baseRetryBackoffMs>100</baseRetryBackoffMs>
-        <maxRetryBackoffMs>50000</maxRetryBackoffMs>
-        <!-- 可选项 通过配置 encoder 的 pattern 自定义 log 的格式 -->
-        <!--日志文件输出格式-->
-        <encoder>
-            <pattern>${LOG_PATTERN}</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <mdcFields>
-            ${mdcFields}
-        </mdcFields>
-    </appender>
+<!--    <appender name="loghubAppenderError" class="com.tzld.piaoquan.recommend.server.common.RecommendLoghubAppender">-->
+<!--        &lt;!&ndash;必选项&ndash;&gt;-->
+<!--        &lt;!&ndash; 账号及网络配置 &ndash;&gt;-->
+<!--        <endpoint>${aliyun_log_endpoint}</endpoint>-->
+<!--        <accessKeyId>${aliyun_log_accessKeyId}</accessKeyId>-->
+<!--        <accessKeySecret>${aliyun_log_accessKeySecret}</accessKeySecret>-->
+<!--        &lt;!&ndash; sls 项目配置 &ndash;&gt;-->
+<!--        <project>${aliyun_log_project}</project>-->
+<!--        <logStore>error-log</logStore>-->
+<!--        &lt;!&ndash;必选项 (end)&ndash;&gt;-->
+<!--        &lt;!&ndash; 可选项 &ndash;&gt;-->
+<!--        <topic></topic>-->
+<!--        <source></source>-->
+<!--        &lt;!&ndash; 可选项 详见 '参数说明'&ndash;&gt;-->
+<!--        <totalSizeInBytes>104857600</totalSizeInBytes>-->
+<!--        <maxBlockMs>0</maxBlockMs>-->
+<!--        <ioThreadCount>16</ioThreadCount>-->
+<!--        <batchSizeThresholdInBytes>524288</batchSizeThresholdInBytes>-->
+<!--        <batchCountThreshold>4096</batchCountThreshold>-->
+<!--        <lingerMs>2000</lingerMs>-->
+<!--        <retries>10</retries>-->
+<!--        <baseRetryBackoffMs>100</baseRetryBackoffMs>-->
+<!--        <maxRetryBackoffMs>50000</maxRetryBackoffMs>-->
+<!--        &lt;!&ndash; 可选项 通过配置 encoder 的 pattern 自定义 log 的格式 &ndash;&gt;-->
+<!--        &lt;!&ndash;日志文件输出格式&ndash;&gt;-->
+<!--        <encoder>-->
+<!--            <pattern>${LOG_PATTERN}</pattern>-->
+<!--            <charset>UTF-8</charset> &lt;!&ndash; 此处设置字符集 &ndash;&gt;-->
+<!--        </encoder>-->
+<!--        <filter class="ch.qos.logback.classic.filter.LevelFilter">-->
+<!--            <level>ERROR</level>-->
+<!--            <onMatch>ACCEPT</onMatch>-->
+<!--            <onMismatch>DENY</onMismatch>-->
+<!--        </filter>-->
+<!--        <mdcFields>-->
+<!--            ${mdcFields}-->
+<!--        </mdcFields>-->
+<!--    </appender>-->
 
-    <!--
-        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
-        以及指定<appender>。<logger>仅有一个name属性,
-        一个可选的level和一个可选的addtivity属性。
-        name:用来指定受此logger约束的某一个包或者具体的某一个类。
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-              还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
-              如果未设置此属性,那么当前logger将会继承上级的级别。
-        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级别:
-     -->
+<!--    &lt;!&ndash;-->
+<!--        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、-->
+<!--        以及指定<appender>。<logger>仅有一个name属性,-->
+<!--        一个可选的level和一个可选的addtivity属性。-->
+<!--        name:用来指定受此logger约束的某一个包或者具体的某一个类。-->
+<!--        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,-->
+<!--              还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。-->
+<!--              如果未设置此属性,那么当前logger将会继承上级的级别。-->
+<!--        addtivity:是否向上级logger传递打印信息。默认是true。-->
+<!--    &ndash;&gt;-->
+<!--    &lt;!&ndash;<logger name="org.springframework.web" level="info"/>&ndash;&gt;-->
+<!--    &lt;!&ndash;<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>&ndash;&gt;-->
+<!--    &lt;!&ndash;-->
+<!--        使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:-->
+<!--        第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息-->
+<!--        第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别:-->
+<!--     &ndash;&gt;-->
 
-    <!--
-        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-        不能设置为INHERITED或者同义词NULL。默认是DEBUG
-        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
-    -->
+<!--    &lt;!&ndash;-->
+<!--        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性-->
+<!--        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,-->
+<!--        不能设置为INHERITED或者同义词NULL。默认是DEBUG-->
+<!--        可以包含零个或多个元素,标识这个appender将会添加到这个logger。-->
+<!--    &ndash;&gt;-->
 
-    <springProfile name="dev">
-        <logger name="com.tzld.piaoquan.recommend.server" level="info"/>
-    </springProfile>
-    <springProfile name="test">
-        <logger name="com.tzld.piaoquan.recommend.server" level="info"/>
-    </springProfile>
-    <springProfile name="pre">
-        <logger name="com.tzld.piaoquan.recommend.server" level="info"/>
-    </springProfile>
-    <springProfile name="stress">
-        <logger name="com.tzld.piaoquan.recommend.server" level="info"/>
-    </springProfile>
-    <springProfile name="prod">
-        <logger name="com.tzld.piaoquan.recommend.server" level="info"/>
-    </springProfile>
+<!--    <springProfile name="dev">-->
+<!--        <logger name="com.tzld.piaoquan.recommend.server" level="info"/>-->
+<!--    </springProfile>-->
+<!--    <springProfile name="test">-->
+<!--        <logger name="com.tzld.piaoquan.recommend.server" level="info"/>-->
+<!--    </springProfile>-->
+<!--    <springProfile name="pre">-->
+<!--        <logger name="com.tzld.piaoquan.recommend.server" level="info"/>-->
+<!--    </springProfile>-->
+<!--    <springProfile name="stress">-->
+<!--        <logger name="com.tzld.piaoquan.recommend.server" level="info"/>-->
+<!--    </springProfile>-->
+<!--    <springProfile name="prod">-->
+<!--        <logger name="com.tzld.piaoquan.recommend.server" level="info"/>-->
+<!--    </springProfile>-->
 
-    <root level="info">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="loghubAppenderInfo"/>
-        <appender-ref ref="loghubAppenderWarn"/>
-        <appender-ref ref="loghubAppenderError"/>
-    </root>
+<!--    <root level="info">-->
+<!--        <appender-ref ref="CONSOLE"/>-->
+<!--        <appender-ref ref="loghubAppenderInfo"/>-->
+<!--        <appender-ref ref="loghubAppenderWarn"/>-->
+<!--        <appender-ref ref="loghubAppenderError"/>-->
+<!--    </root>-->
 
 </configuration>