| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617 | <?xml version="1.0" encoding="UTF-8"?><configuration debug="false">    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->   <property value="logs/soc-mediator" name="LOG_HOME"/>   <!-- <property name="log.path" value="logs/soc-mediator" />-->    <!-- 活动文件的大小 -->    <property name="max.file.size" value="50MB"/>    <!-- 保留的归档文件的最大数量 -->    <property name="max.history" value="15"/>    <!-- 控制所有归档日志文件的总大小 -->    <property name="total.size.cap" value="10GB"/>    <!-- 控制台输出 -->    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">        <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} - %msg%n</pattern>        </encoder>    </appender>    <!-- equipmentList 基础信息,基础设备同步接口   -->    <appender name="equipmentListLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_equipment/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="channelListLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_channel/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="bluetoothLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/status_info_bluetooth/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="deviceDataLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/status_info_device_data/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="doorDataLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/status_info_door_data/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="ruleDataLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/status_info_rule_data/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="batchProductLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_product/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="syncProductFieldLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_product_field/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="batchDeviceLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_device/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="doorDeviceLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_door_device/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="statusDefenceareaLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/status_info_defencearea/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="statusDisksLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/status_info_disks/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="statusNetworkLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/status_info_network/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="baseDefenceareaLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_defencearea/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="statusSensorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/status_info_sensor/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="videoCompleteLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/status_info_video_complete/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="videoDaysInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/status_info_video_days/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="videoDiagnosisLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/status_info_video_diagnosis/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="videoPlanLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/status_info_video_plan/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="upsDeviceLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_ups_device/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="upsDeviceDataLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_ups_device_data/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="breakerDeviceLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_breaker_device/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="breakerDeviceDataLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_breaker_device_data/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="notifyInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_notify_info/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="dvrDiskLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_info_dvr_disk/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="behaviorAnalysisAlarmLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/base_behavior_analysis_alarm/%d{yyyy-MM-dd}-%i.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>${max.history}</maxHistory>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">        <encoder>            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">            <level>warn</level>        </filter>        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <fileNamePattern>${LOG_HOME}/error/%d{yyyy-MM-dd}-%i.log</fileNamePattern>            <maxHistory>${max.history}</maxHistory>            <maxFileSize>${max.file.size}</maxFileSize>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>    </appender>    <appender name="directHostSensor" class="ch.qos.logback.core.rolling.RollingFileAppender">        <encoder>            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <fileNamePattern>${LOG_HOME}/base_direct_host_sensor/%d{yyyy-MM-dd}-%i.log</fileNamePattern>            <maxHistory>${max.history}</maxHistory>            <maxFileSize>${max.file.size}</maxFileSize>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>    </appender>    <appender name="directHostSensorStatus" class="ch.qos.logback.core.rolling.RollingFileAppender">        <encoder>            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <fileNamePattern>${LOG_HOME}/status_direct_host_sensor/%d{yyyy-MM-dd}-%i.log</fileNamePattern>            <maxHistory>${max.history}</maxHistory>            <maxFileSize>${max.file.size}</maxFileSize>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>    </appender>    <appender name="airConditionerDataLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <encoder>            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <fileNamePattern>${LOG_HOME}/base_air_conditioner/%d{yyyy-MM-dd}-%i.log</fileNamePattern>            <maxHistory>${max.history}</maxHistory>            <maxFileSize>${max.file.size}</maxFileSize>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>    </appender>    <appender name="airConditionerStatusLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <encoder>            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <fileNamePattern>${LOG_HOME}/status_air_conditioner/%d{yyyy-MM-dd}-%i.log</fileNamePattern>            <maxHistory>${max.history}</maxHistory>            <maxFileSize>${max.file.size}</maxFileSize>            <totalSizeCap>${total.size.cap}</totalSizeCap>            <cleanHistoryOnStart>true</cleanHistoryOnStart>        </rollingPolicy>    </appender>    <!--name属性是代码里创建日志用的(例如:Logger clog = LoggerFactory.getLogger("createLog");)-->    <logger name="equipmentLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="equipmentListLog"/>    </logger>    <logger name="channelLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="channelListLog"/>    </logger>    <logger name="bluetoothLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="bluetoothLog"/>    </logger>    <logger name="deviceDataLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="deviceDataLog"/>    </logger>    <logger name="doorDataLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="doorDataLog"/>    </logger>    <logger name="ruleDataLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="ruleDataLog"/>    </logger>    <logger name="batchProductLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="batchProductLog"/>    </logger>    <logger name="syncProductFieldLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="syncProductFieldLog"/>    </logger>    <logger name="batchDeviceLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="batchDeviceLog"/>    </logger>    <logger name="doorDeviceLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="doorDeviceLog"/>    </logger>    <logger name="statusDefenceareaLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="statusDefenceareaLog"/>    </logger>    <logger name="statusDisksLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="statusDisksLog"/>    </logger>    <logger name="statusNetworkLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="statusNetworkLog"/>    </logger>    <logger name="baseDefenceareaLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="baseDefenceareaLog"/>    </logger>    <logger name="statusSensorLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="statusSensorLog"/>    </logger>    <logger name="videoCompleteLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="videoCompleteLog"/>    </logger>    <logger name="videoDaysInfoLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="videoDaysInfoLog"/>    </logger>    <logger name="videoDiagnosisLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="videoDiagnosisLog"/>    </logger>    <logger name="videoPlanLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="videoPlanLog"/>    </logger>    <logger name="upsDeviceLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="upsDeviceLog"/>    </logger>    <logger name="upsDeviceDataLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="upsDeviceDataLog"/>    </logger>    <logger name="breakerDeviceLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="breakerDeviceLog"/>    </logger>    <logger name="breakerDeviceDataLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="breakerDeviceDataLog"/>    </logger>    <logger name="notifyInfoLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="notifyInfoLog"/>    </logger>    <logger name="dvrDiskLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="dvrDiskLog"/>    </logger>    <logger name="behaviorAnalysisAlarmLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="behaviorAnalysisAlarmLog"/>    </logger>    <logger name="directHostSensor" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="directHostSensor"/>    </logger>    <logger name="directHostSensorStatus" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="directHostSensorStatus"/>    </logger>    <logger name="airConditionerDataLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="airConditionerDataLog"/>    </logger>    <logger name="airConditionerStatusLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="airConditionerStatusLog"/>    </logger>    <!-- 日志输出级别 -->    <root level="INFO">        <appender-ref ref="STDOUT"/>        <appender-ref ref="error"/>    </root></configuration>
 |