燕山石化溯源三维电子沙盘-【后端】-服务
13693261870
2023-06-06 ec3e7326246b5543089b14e53275e2aca8e39f96
修改logback日志输出功能
已添加1个文件
已修改13个文件
377 ■■■■ 文件已修改
pom.xml 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/scheduled/ReadCsvTask.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/VocValsService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/impl/AlertConfigServiceImpl.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/impl/AsyncServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/impl/CommonServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/impl/ExpPointServerImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/impl/ForecastAnalyseServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/impl/SuYuanServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/utils/CsvParser.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/utils/VocParser.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/logback.xml 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -22,6 +22,41 @@
    </properties>
    <dependencies>
        <!--logback-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-access</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.3</version>
        </dependency>
        <!--log4j-->
        <!--dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>
        <!--spring-boot-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
@@ -40,75 +75,18 @@
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <!--dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring-framework.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency-->
        <!--dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency-->
        <!--log4j-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!--dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.6</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.2</version>
        </dependency-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <!--<dependency>添加Swagger依赖
        <!--添加Swagger依赖-->
        <!--<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>添加Swagger-UI依赖
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
src/main/java/com/yssh/scheduled/ReadCsvTask.java
@@ -10,9 +10,8 @@
import com.yssh.entity.VocVals;
import com.yssh.service.VocValsService;
import com.yssh.utils.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -28,21 +27,21 @@
@Component
public class ReadCsvTask {
    protected final Log logger = LogFactory.getLog(this.getClass());
    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
    @Resource
    private VocValsService vocValsService;
    @Autowired
    @Resource
    private SuYuanServiceImpl suYuanService;
    @Autowired
    @Resource
    private CsvFilePathConfig csvFilePathConfig;
    @Autowired
    @Resource
    private IDictRecordService dictRecordService;
    @Autowired
    @Resource
    private IWarningAnalyseService warningAnalyseService;
    private final static List<String> md5List = new ArrayList<>();
@@ -65,7 +64,7 @@
            File file = new File(filePath);
            if (!file.exists()) {
                logger.error(file.getAbsolutePath() + " is not exist ï¼");
                logger.info(file.getAbsolutePath() + " is not exist ï¼");
                continue;
            }
@@ -83,7 +82,7 @@
            try {
                EasyCsv.read(filePath, VocVals.class, new VocParser(vocValsService, calendar.getTime())).doRead();
            } catch (Exception e) {
                logger.error(e);
                logger.error(e.getMessage(), e);
            }
        }
    }
@@ -105,7 +104,7 @@
            File file = new File(filePath);
            if (!file.exists()) {
                logger.error(file.getAbsolutePath() + " is not exist ï¼");
                logger.info(file.getAbsolutePath() + " is not exist ï¼");
                continue;
            }
@@ -150,7 +149,7 @@
        String filePath = csvFilePathConfig.getFilePath() + "\\\\" + time + ".csv";
        File file = new File(filePath);
        if (!file.exists()) {
            logger.error(file.getAbsolutePath() + " is not exist ï¼");
            logger.info(file.getAbsolutePath() + " is not exist ï¼");
            return;
        }
        //创建表
src/main/java/com/yssh/service/VocValsService.java
@@ -3,8 +3,8 @@
import com.google.common.collect.Lists;
import com.yssh.dao.VocValsMapper;
import com.yssh.entity.VocVals;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@@ -17,7 +17,7 @@
    @Resource
    VocValsMapper vocValsMapper;
    protected final Log logger = LogFactory.getLog(this.getClass());
    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
    @Override
    public List<VocVals> selectByTime(String time) {
src/main/java/com/yssh/service/impl/AlertConfigServiceImpl.java
@@ -2,59 +2,40 @@
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yssh.dao.AlertConfigMapper;
import com.yssh.dao.DictRecordMapper;
import com.yssh.dao.SuYuanMapper;
import com.yssh.entity.AlertConfig;
import com.yssh.service.IAlertConfigService;
import com.yssh.service.ICommonService;
import javax.annotation.Resource;
@Service
public class AlertConfigServiceImpl implements IAlertConfigService {
    protected final Log logger = LogFactory.getLog(this.getClass());
    @Autowired
    @Resource
    private AlertConfigMapper alertConfigMapper;
    @Autowired
    private ICommonService commonService;
    @Autowired
    private SuYuanMapper suYuanMapper;
    @Autowired
    private DictRecordMapper dictRecordMapper;
    @Override
    @Override
    public List<AlertConfig> getAll() {
        return alertConfigMapper.getAll();
    }
    @Override
    public List<AlertConfig> query(Integer id) {
        return alertConfigMapper.query(id);
    }
    @Override
    public int update(AlertConfig config) {
        return alertConfigMapper.update(config);
    }
    public int insert(AlertConfig config) {
        return alertConfigMapper.insert(config);
    }
    @Override
    public int delete(Integer id) {
        return alertConfigMapper.delete(id);
    }
}
src/main/java/com/yssh/service/impl/AsyncServiceImpl.java
@@ -3,22 +3,13 @@
import java.util.List;
import java.util.concurrent.CountDownLatch;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import com.yssh.dao.BaseMapper;
import com.yssh.service.IAsyncService;
@Service
public class AsyncServiceImpl implements IAsyncService {
    protected final Log logger = LogFactory.getLog(this.getClass());
    @Override
    public <T> void executeAsync(String tableName, List<T> lists, BaseMapper mapper, CountDownLatch countDownLatch) {
        try{
@@ -28,5 +19,4 @@
            countDownLatch.countDown();// å¾ˆå…³é”®, æ— è®ºä¸Šé¢ç¨‹åºæ˜¯å¦å¼‚常必须执行countDown,否则await无法释放
        }
    }
}
src/main/java/com/yssh/service/impl/CommonServiceImpl.java
@@ -1,6 +1,5 @@
package com.yssh.service.impl;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
@@ -10,11 +9,8 @@
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yssh.config.CsvFilePathConfig;
@@ -25,25 +21,24 @@
import com.yssh.utils.CalculateUtils;
import com.yssh.utils.StringUtils;
import javax.annotation.Resource;
@Service
public class CommonServiceImpl implements ICommonService {
    protected final Log logger = LogFactory.getLog(this.getClass());
    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
    private static final String TABLE_SCHEMA = "yssh";
    
    private List<MonitorPointPosition> checkPoints2d = new ArrayList<MonitorPointPosition>();
    private List<MonitorPointPosition> checkPoints3d = new ArrayList<MonitorPointPosition>();
    private List<MonitorPointPosition> checkPoints2d = new ArrayList<>();
    private List<MonitorPointPosition> checkPoints3d = new ArrayList<>();
    
    @Autowired
    @Resource
    private CommonMapper commonMapper;
    
    @Autowired
    @Resource
    protected DatFilePathConfig datFilePathConfig;
    @Autowired
    private CsvFilePathConfig csvFilePathConfig;
    /**
     * æ£€æŸ¥è¡¨æ˜¯å¦å­˜åœ¨
     */
src/main/java/com/yssh/service/impl/ExpPointServerImpl.java
@@ -3,43 +3,30 @@
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.geotools.geojson.geom.GeometryJSON;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryFactory;
import org.locationtech.jts.geom.MultiPoint;
import org.locationtech.jts.triangulate.ConformingDelaunayTriangulationBuilder;
import org.locationtech.jts.triangulate.DelaunayTriangulationBuilder;
import org.locationtech.jts.triangulate.VoronoiDiagramBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yssh.dao.ExpPointMapper;
import com.yssh.dao.StratumMapper;
import com.yssh.entity.ExpPoint;
import com.yssh.entity.Stratum;
import com.yssh.service.IExpPointServer;
import com.yssh.utils.GisUtil;
import javax.annotation.Resource;
@Service
public class ExpPointServerImpl implements IExpPointServer {
    protected final Log logger = LogFactory.getLog(this.getClass());
    @Autowired
    @Resource
    private ExpPointMapper expPointMapper;
    @Autowired
    private StratumMapper stratumMapper;
    @Override
    public GeometryJSON selectList() throws IOException {
        String sourceCRS = "EPSG:4530";
@@ -69,8 +56,7 @@
        int numPoints = geo.getNumPoints();
        return geometryJson;
    }
    public List<ExpPoint> selectList2() {
        String sourceCRS = "EPSG:4530";
        String targetCRS = "EPSG:4490";
src/main/java/com/yssh/service/impl/ForecastAnalyseServiceImpl.java
@@ -6,11 +6,8 @@
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yssh.dao.DictRecordMapper;
@@ -26,21 +23,20 @@
import com.yssh.utils.DateUtils;
import com.yssh.utils.StringUtils;
import javax.annotation.Resource;
@Service
public class ForecastAnalyseServiceImpl implements IForecastAnalyseService{
    protected final Log logger = LogFactory.getLog(this.getClass());
    @Autowired
    @Resource
    private ICommonService commonService;
    
    @Autowired
    @Resource
    private SuYuanMapper suYuanMapper;
    
    @Autowired
    @Resource
    private DictRecordMapper dictRecordMapper;
    
    @Autowired
    @Resource
    private ThuAccuracyMapper thuAccuracyMapper;
    
    @Override
@@ -73,5 +69,4 @@
        }
        return result;
    }
}
src/main/java/com/yssh/service/impl/SuYuanServiceImpl.java
@@ -8,8 +8,8 @@
import com.yssh.dao.QxshMapper;
import com.yssh.entity.*;
import com.yssh.utils.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@@ -25,8 +25,7 @@
@Service
public class SuYuanServiceImpl implements ISuYuanService {
    protected final Log logger = LogFactory.getLog(this.getClass());
    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
    @Resource
    private SuYuanMapper suYuanMapper;
src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
@@ -12,8 +12,8 @@
import com.yssh.dao.*;
import com.yssh.entity.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@@ -30,14 +30,10 @@
@Service
public class WarningAnalyseServiceImpl implements IWarningAnalyseService {
    protected final Log logger = LogFactory.getLog(this.getClass());
    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
    @Resource
    private WarningDetailMapper warningDetailMapper;
    @Resource
    private AlertConfigMapper alertConfigMapper;
    @Resource
    private ICommonService commonService;
@@ -200,7 +196,7 @@
            try {
                insertWarningDetails(allData);
            } catch (Exception e) {
                logger.error("批量插入告警数据出现异常!!!");
                logger.error("批量插入告警数据出现异常!!!", e);
                e.printStackTrace();
            }
        }
src/main/java/com/yssh/utils/CsvParser.java
@@ -3,8 +3,6 @@
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -13,8 +11,8 @@
import com.yssh.service.ISuYuanService;
public class CsvParser extends AbstractCsvFileParser<SuYuan> {
    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
    protected final Log logger = LogFactory.getLog(this.getClass());
    /**
     * æ¯éš”3000条存储数据库,然后清理list ï¼Œæ–¹ä¾¿å†…存回收
     */
@@ -41,7 +39,7 @@
        try {
            saveSuYuanData();
        } catch (Exception e) {
            logger.error("解析保存数据出现异常,异常原因是:" + e.getMessage());
            logger.error("解析保存数据出现异常,异常原因是:" + e.getMessage(), e);
            e.printStackTrace();
        }
    }
@@ -60,7 +58,7 @@
            try {
                saveSuYuanData();
            } catch (Exception e) {
                logger.error("解析保存数据出现异常,异常原因是:" + e.getMessage());
                logger.error("解析保存数据出现异常,异常原因是:" + e.getMessage(), e);
                e.printStackTrace();
            }
            // å­˜å‚¨å®Œæˆæ¸…理 list
src/main/java/com/yssh/utils/VocParser.java
@@ -3,8 +3,8 @@
import com.github.biyanwen.impl.AbstractCsvFileParser;
import com.yssh.entity.VocVals;
import com.yssh.service.VocValsService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.math.BigInteger;
import java.text.SimpleDateFormat;
@@ -18,7 +18,7 @@
 * @date 2023-06-05
 */
public class VocParser extends AbstractCsvFileParser<VocVals> {
    protected final Log logger = LogFactory.getLog(this.getClass());
    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
    private final SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHH0000");
@@ -74,7 +74,7 @@
                this.vocValsService.insertVocVals(list);
            }
        } catch (Exception e) {
            logger.error(e.getMessage());
            logger.error(e.getMessage(), e);
            e.printStackTrace();
        }
    }
src/main/resources/application.yml
@@ -29,8 +29,11 @@
# æ—¥å¿—配置
logging:
  config: classpath:logback-spring.xml
  #config: classpath:logback-spring.xml
  level:
    com.yssh: info
    org.springframework: error
#MyBatis配置
mybatis:
  mapper-locations: classpath:mapping/*.xml
src/main/resources/logback.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- æ—¥å¿—存放路径 -->
    <property name="log.path" value="E:/terrait/TianJin/YanShan/logs" />
    <!-- æ—¥å¿—输出格式 -->
    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
    <!-- æŽ§åˆ¶å°è¾“出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>
    <appender name="file_debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/sys-debug.log</file>
        <!-- å¾ªçŽ¯æ”¿ç­–ï¼šåŸºäºŽæ—¶é—´åˆ›å»ºæ—¥å¿—æ–‡ä»¶ -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- æ—¥å¿—文件名格式 -->
            <fileNamePattern>${log.path}/sys-debug.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- æ—¥å¿—最大的历史 60天 -->
            <maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- è¿‡æ»¤çš„级别 -->
            <level>DEBUG</level>
            <!-- åŒ¹é…æ—¶çš„æ“ä½œï¼šæŽ¥æ”¶ï¼ˆè®°å½•) -->
            <onMatch>ACCEPT</onMatch>
            <!-- ä¸åŒ¹é…æ—¶çš„æ“ä½œï¼šæ‹’绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!-- ç³»ç»Ÿæ—¥å¿—输出 -->
    <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/sys-info.log</file>
        <!-- å¾ªçŽ¯æ”¿ç­–ï¼šåŸºäºŽæ—¶é—´åˆ›å»ºæ—¥å¿—æ–‡ä»¶ -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- æ—¥å¿—文件名格式 -->
            <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- æ—¥å¿—最大的历史 60天 -->
            <maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- è¿‡æ»¤çš„级别 -->
            <level>INFO</level>
            <!-- åŒ¹é…æ—¶çš„æ“ä½œï¼šæŽ¥æ”¶ï¼ˆè®°å½•) -->
            <onMatch>ACCEPT</onMatch>
            <!-- ä¸åŒ¹é…æ—¶çš„æ“ä½œï¼šæ‹’绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/sys-error.log</file>
        <!-- å¾ªçŽ¯æ”¿ç­–ï¼šåŸºäºŽæ—¶é—´åˆ›å»ºæ—¥å¿—æ–‡ä»¶ -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- æ—¥å¿—文件名格式 -->
            <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- æ—¥å¿—最大的历史 60天 -->
            <maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- è¿‡æ»¤çš„级别 -->
            <level>ERROR</level>
            <!-- åŒ¹é…æ—¶çš„æ“ä½œï¼šæŽ¥æ”¶ï¼ˆè®°å½•) -->
            <onMatch>ACCEPT</onMatch>
            <!-- ä¸åŒ¹é…æ—¶çš„æ“ä½œï¼šæ‹’绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>
    <!-- ç³»ç»Ÿæ¨¡å—日志级别控制  -->
    <logger name="com.yssh" level="info" />
    <!-- Spring日志级别控制  -->
    <logger name="org.springframework" level="error" />
    <!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_info" />
        <appender-ref ref="file_error" />
        <appender-ref ref="console" />
    </root>
</configuration>