| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317 | <?xml version="1.0" encoding="UTF-8"?><configuration debug="false">    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->   <property value="logs/soc-host" name="LOG_HOME"/>    <!-- 活动文件的大小 -->    <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>    <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="alarmRuleLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/alarmRuleLog/%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>    <!-- websocket消息重试日志  -->    <appender name="wsMsgRetryLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/wsMsgRetryLog/%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>    <!-- websocket日志  -->    <appender name="websocketMsgLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/websocketMsg/%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>    <!-- websocket日志  -->    <appender name="socketBaseDeviceInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/socketBaseDeviceInfo/%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="socketDeviceStatusInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/socketDeviceStatusInfo/%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="socketDeviceAlarmData" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/socketDeviceAlarmData/%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="socketSubSystemStatusData" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/socketSubSystemStatusData/%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="dailyHealth" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/socketDailyHealth/%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="socketWorkData" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/socketWorkData/%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="socketWorkOperationData" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/socketWorkOperationData/%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}/socketVideoDiagnosisLog/%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="cameraMissionAndThresholdLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <maxFileSize>${max.file.size}</maxFileSize>            <!--日志文件输出的文件名-->            <FileNamePattern>${LOG_HOME}/camera_mission_threshold/%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>    <logger name="websocketMsgLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="websocketMsgLog"/>    </logger>    <logger name="socketBaseDeviceInfo" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="socketBaseDeviceInfo"/>    </logger>    <logger name="socketDeviceStatusInfo" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="socketDeviceStatusInfo"/>    </logger>    <logger name="socketDeviceAlarmData" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="socketDeviceAlarmData"/>    </logger>    <logger name="socketSubSystemStatusData" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="socketSubSystemStatusData"/>    </logger>    <logger name="dailyHealth" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="dailyHealth"/>    </logger>    <logger name="socketWorkData" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="socketWorkData"/>    </logger>    <logger name="socketWorkOperationData" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="socketWorkOperationData"/>    </logger>    <logger name="videoDiagnosisLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="videoDiagnosisLog"/>    </logger>    <logger name="statusSensorLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="statusSensorLog"/>    </logger>    <logger name="cameraMissionAndThresholdLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="cameraMissionAndThresholdLog"/>    </logger>    <logger name="alarmRuleLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="alarmRuleLog"/>    </logger>    <logger name="wsMsgRetryLog" additivity="false" level="info">        <!--上面appender元素的name值。为了和logger的name属性做区分,我故意写的不一样-->        <appender-ref ref="wsMsgRetryLog"/>    </logger>    <!-- 日志输出级别 -->    <root level="INFO">        <appender-ref ref="STDOUT"/>        <appender-ref ref="error"/>    </root></configuration>
 |