<?xml version="1.0" encoding="UTF-8"?>
|
<!--scan为true(默认每一分钟扫描一下配置文件,如果发生更改就重新加载配置文件)
|
scanPeriod设置扫描配置文件的时间间隔(如果没有指定单位默认为毫秒)
|
debug 如果设置为true,在控制台中打印logback内部运行日志(内部状态信息,如果配置文件有错误
|
也会输出),由于logback已经很稳定了,我们一般设置为false,以免干扰我们查看有用的日志信息 -->
|
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
|
<!--定义参数常量(全局变量)-->
|
<!--设置Logger的等级 (TRACE<DEBUG<INFO<WARN<ERROR),假设配置为INFO,那么debug将不会被
|
输出,我们一般会把debug,info,error的信息分别输出到文件中-->
|
<property name="log.level" value="debug"/>
|
<!--归档日志文件保存的最大时间(单位跟按什么轮转有关,比如按天轮转那么单位就为天) -->
|
<property name="log.maxHistory" value="30"/>
|
<!--日志存储的根路径 ${catalina.base}指向每个Tomcat目录私有信息的位置,
|
就是conf、logs、temp、webapps和work的父目录-->
|
<property name="log.filePath" value="/usr/local/tomcat/logs"/>
|
<!--日志展示的格式-->
|
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>
|
|
<property resource="kafka_log.properties"></property>
|
|
<property name="tencent.log.accesskey" value="AKIDTlpgJhLjOozvd6QI2XnpfGbgV4NQJk25"/>
|
|
<property name="tencent.log.accessKeySecret" value="xhCSUHo55oHUQ6XicFcmfIgspX0EEzWo"/>
|
|
<property name="tencent.log.endpoint" value="ap-guangzhou.cls.tencentyun.com"/>
|
|
|
|
<!--appender是为了配置日志信息输出到哪个地方-->
|
<!--控制台设置,输出到控制台中-->
|
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
<!--encoder作用是既把日志信息转换为字符串,也输出到指定的位置 -->
|
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
<!--pattern为配置输出的格式-->
|
<pattern>${log.pattern}</pattern>
|
</encoder>
|
</appender>
|
|
<!-- ERROR -->
|
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<file>${log.filePath}/error/error.log</file>
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<fileNamePattern>${log.filePath}/error/error.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
|
<maxHistory>${log.maxHistory}</maxHistory>
|
</rollingPolicy>
|
|
<layout class="ch.qos.logback.classic.PatternLayout">
|
<pattern>
|
${log.pattern}
|
</pattern>
|
</layout>
|
</appender>
|
|
|
<appender name="ALIPAY_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<file>${log.filePath}/alipay/alipay.log</file>
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<fileNamePattern>${log.filePath}/alipay/alipay.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
|
<maxHistory>${log.maxHistory}</maxHistory>
|
</rollingPolicy>
|
|
<layout class="ch.qos.logback.classic.PatternLayout">
|
<pattern>
|
${log.pattern}
|
</pattern>
|
</layout>
|
</appender>
|
|
|
<!-- DEBUG -->
|
<!-- 客户端接口出错 -->
|
<appender name="apiErrorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<file>${log.filePath}/client-api-error.log</file>
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<fileNamePattern>${log.filePath}/error/client-api-error.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
|
<maxHistory>${log.maxHistory}</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="Appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<file>${log.filePath}/.log</file>
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<fileNamePattern>${log.filePath}/info/.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
|
<maxHistory>${log.maxHistory}</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="videoSearchAppender" class="com.tencentcloudapi.cls.LoghubAppender">
|
<!--必选项-->
|
<endpoint>${tencent.log.endpoint}</endpoint>
|
<accessKeyId>${tencent.log.accesskey}</accessKeyId>
|
<accessKeySecret>${tencent.log.accessKeySecret}</accessKeySecret>
|
<topicId>b92e919d-c3f4-435e-9b9f-8a66d5c3989a</topicId>
|
|
<!-- 可选项 设置时间格式 -->
|
<timeFormat>yyyy-MM-dd'T'HH:mm:ssZ</timeFormat>
|
<timeZone>Asia/Shanghai</timeZone>
|
<encoder>
|
<pattern>${log.pattern}</pattern>
|
</encoder>
|
<mdcFields>THREAD_ID,MDC_KEY</mdcFields>
|
</appender>
|
|
|
<appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<file>${log.filePath}/debug/debug.log</file>
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<fileNamePattern>${log.filePath}/debug/.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
|
<maxHistory>${log.maxHistory}</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>
|
|
|
<!-- IP位置日志 -->
|
<appender name="deviceGeoAppender" class="com.tencentcloudapi.cls.LoghubAppender">
|
<!--必选项-->
|
<endpoint>${tencent.log.endpoint}</endpoint>
|
<accessKeyId>${tencent.log.accesskey}</accessKeyId>
|
<accessKeySecret>${tencent.log.accessKeySecret}</accessKeySecret>
|
<topicId>12839e31-c4d5-4c4f-8e25-1ec3e2f34308</topicId>
|
|
<!-- 可选项 设置时间格式 -->
|
<timeFormat>yyyy-MM-dd'T'HH:mm:ssZ</timeFormat>
|
<timeZone>Asia/Shanghai</timeZone>
|
<encoder>
|
<pattern>${log.pattern}</pattern>
|
</encoder>
|
<mdcFields>THREAD_ID,MDC_KEY</mdcFields>
|
</appender>
|
|
|
<appender name="appStoreAppender" class="com.tencentcloudapi.cls.LoghubAppender">
|
<!--必选项-->
|
<endpoint>${tencent.log.endpoint}</endpoint>
|
<accessKeyId>${tencent.log.accesskey}</accessKeyId>
|
<accessKeySecret>${tencent.log.accessKeySecret}</accessKeySecret>
|
<topicId>95b406ff-ede6-4461-b1c6-2657b1b8cf67</topicId>
|
|
<!-- 可选项 设置时间格式 -->
|
<timeFormat>yyyy-MM-dd'T'HH:mm:ssZ</timeFormat>
|
<timeZone>Asia/Shanghai</timeZone>
|
<encoder>
|
<pattern>${log.pattern}</pattern>
|
</encoder>
|
<mdcFields>THREAD_ID,MDC_KEY</mdcFields>
|
</appender>
|
|
|
<appender name="dpEventAppender" class="com.tencentcloudapi.cls.LoghubAppender">
|
<!--必选项-->
|
<endpoint>${tencent.log.endpoint}</endpoint>
|
<accessKeyId>${tencent.log.accesskey}</accessKeyId>
|
<accessKeySecret>${tencent.log.accessKeySecret}</accessKeySecret>
|
<topicId>db78b631-1764-48c5-9010-0209b63c9a5f</topicId>
|
|
<!-- 可选项 设置时间格式 -->
|
<timeFormat>yyyy-MM-dd'T'HH:mm:ssZ</timeFormat>
|
<timeZone>Asia/Shanghai</timeZone>
|
<encoder>
|
<pattern>${log.pattern}</pattern>
|
</encoder>
|
<mdcFields>THREAD_ID,MDC_KEY</mdcFields>
|
</appender>
|
|
|
<appender name="videoPlayAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<file>${log.filePath}/video/video_play.log</file>
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<fileNamePattern>${log.filePath}/video/video_play.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
|
<maxHistory>${log.maxHistory}</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="videoPlayUserAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<file>${log.filePath}/video/video_play_user.log</file>
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<fileNamePattern>${log.filePath}/video/video_play_user.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
|
<maxHistory>${log.maxHistory}</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="userActiveAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<file>${log.filePath}/user/user_active.log</file>
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<fileNamePattern>${log.filePath}/user/user_active.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
|
<maxHistory>${log.maxHistory}</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="testAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<file>${log.filePath}/test/test.log</file>
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<fileNamePattern>${log.filePath}/test/test.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
|
<maxHistory>${log.maxHistory}</maxHistory>
|
</rollingPolicy>
|
<encoder>
|
<pattern>${log.pattern}</pattern>
|
</encoder>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<level>INFO</level>
|
<onMatch>ACCEPT</onMatch>
|
</filter>
|
</appender>
|
|
|
<appender name="sessionAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<file>${log.filePath}/session/session.log</file>
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<fileNamePattern>${log.filePath}/session/session.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
|
<maxHistory>${log.maxHistory}</maxHistory>
|
</rollingPolicy>
|
<encoder>
|
<pattern>${log.pattern}</pattern>
|
</encoder>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<level>INFO</level>
|
<onMatch>ACCEPT</onMatch>
|
</filter>
|
</appender>
|
|
|
<logger name="com.hxh.spring" level="INFO">
|
<appender-ref ref="STDOUT"></appender-ref>
|
</logger>
|
|
<!--additivity 是否向上传递 -->
|
<logger name="com.yeshi.buwan.aspect" level="ERROR" additivity="true">
|
<appender-ref ref="apiErrorAppender"></appender-ref>
|
</logger>
|
|
<logger name="com.yeshi.buwan.service.imp.Service" level="INFO" additivity="true">
|
<appender-ref ref="Appender"></appender-ref>
|
</logger>
|
|
|
<logger name="videoPlay" level="INFO" additivity="true">
|
<appender-ref ref="videoPlayAppender"></appender-ref>
|
</logger>
|
|
<logger name="videoPlayUser" level="INFO" additivity="true">
|
<appender-ref ref="videoPlayUserAppender"></appender-ref>
|
</logger>
|
|
|
<logger name="session" level="INFO" additivity="true">
|
<appender-ref ref="sessionAppender"></appender-ref>
|
</logger>
|
|
|
<logger name="com.yeshi.buwan" level="ERROR" additivity="true">
|
<appender-ref ref="ERROR_FILE"></appender-ref>
|
</logger>
|
|
|
<logger name="com.yeshi.buwan.controller.AlipayController" level="INFO" additivity="false">
|
<appender-ref ref="ALIPAY_FILE"></appender-ref>
|
</logger>
|
|
|
<logger name="userActive" level="INFO" additivity="false">
|
<appender-ref ref="userActiveAppender"></appender-ref>
|
</logger>
|
|
|
<logger name="deviceGeo" level="INFO" additivity="false">
|
<appender-ref ref="deviceGeoAppender"></appender-ref>
|
</logger>
|
|
|
|
|
<appender name="vipAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<file>${log.filePath}/vip/vip.log</file>
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<fileNamePattern>${log.filePath}/vip/vip.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
|
<maxHistory>${log.maxHistory}</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>
|
|
<logger name="vip" level="INFO" additivity="true">
|
<appender-ref ref="vipAppender"></appender-ref>
|
</logger>
|
|
<logger name="test" level="INFO" additivity="true">
|
<appender-ref ref="testAppender"></appender-ref>
|
</logger>
|
|
<!-- 关键词搜索 -->
|
<logger name="searchKey" level="INFO" additivity="false">
|
<appender-ref ref="videoSearchAppender"></appender-ref>
|
</logger>
|
|
|
<logger name="debug" level="INFO" additivity="false">
|
<appender-ref ref="debugAppender"></appender-ref>
|
</logger>
|
|
|
<logger name="com.yeshi.buwan.controller.AppleController" level="INFO" additivity="false">
|
<appender-ref ref="appStoreAppender"></appender-ref>
|
</logger>
|
|
<logger name="com.yeshi.buwan.controller.api.ClientEventController" level="INFO" additivity="false">
|
<appender-ref ref="dpEventAppender"></appender-ref>
|
</logger>
|
|
|
|
<!-- 一切logger都会继承自root,root默认的层级level为debug -->
|
<root>
|
<level value="INFO"/>
|
<!--在控制台中输出所在层级对应level(以及大于level)的日志信息,因为这里并没有设置LevelFilter-->
|
<appender-ref ref="STDOUT"></appender-ref>
|
</root>
|
</configuration>
|