logback
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<property name="LOG_PATH" value="/data/logs/push-open-unicast-service"/>
<property name="DEBUG_PATTERN" value="%-20(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread]) %-5level [%logger{80}:%line] - %msg%n"/>
<property name="INFO_PATTERN" value="%-20(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread]) %-5level %logger{80} - %msg%n"/>
<property name="MONITOR_PATTEN" value="%-10(%d{HH:mm:ss.SSS}) - %msg%n"/>
<!-- 控制台输出 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<Target>System.out</Target>
<encoder>
<pattern>%-20(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread]) %-5level %logger{80} - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<!-- DEBUG -->
<appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/debug.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/debug_%d{yyyy-MM-dd}.log.gz</FileNamePattern>
</rollingPolicy>
<maxHistory>3</maxHistory>
<encoder charset="UTF-8">
<pattern>${DEBUG_PATTERN}</pattern>
</encoder>
</appender>
<appender name="ASYNC_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="DEBUG"/>
</appender>
<!-- INFO -->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/info.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/info_%d{yyyy-MM-dd}.log.gz</FileNamePattern>
</rollingPolicy>
<maxHistory>3</maxHistory>
<encoder charset="UTF-8">
<pattern>${INFO_PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
</appender>
<appender name="ASYNC_INFO" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="INFO"/>
</appender>
<!-- WARN -->
<appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/warn.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/warn_%d{yyyy-MM-dd-HH}.log.gz</FileNamePattern>
</rollingPolicy>
<maxHistory>48</maxHistory>
<encoder charset="UTF-8">
<pattern>${INFO_PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
</appender>
<appender name="ASYNC_WARN" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="WARN"/>
</appender>
<!-- ERROR -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/error.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/error_%d{yyyy-MM-dd}.log.gz</FileNamePattern>
</rollingPolicy>
<maxHistory>3</maxHistory>
<encoder charset="UTF-8">
<pattern>${INFO_PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
</appender>
<appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="ERROR"/>
</appender>
<!-- DISCONF -->
<appender name="DISCONF" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/error.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/error_%d{yyyy-MM-dd}.log.gz</FileNamePattern>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>${INFO_PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
</appender>
<appender name="ASYNC_DISCONF" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="DISCONF"/>
</appender>
<!-- UNICAST TRACE -->
<appender name="UNICAST_TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/unicast_trace.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/unicast_trace_%d{yyyy-MM-dd-HH}.log.gz</FileNamePattern>
</rollingPolicy>
<maxHistory>48</maxHistory>
<encoder charset="UTF-8">
<pattern>%msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
</appender>
<appender name="ASYNC_UNICAST_TRACE" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="UNICAST_TRACE"/>
</appender>
<!-- UNICAST NOTIFICATION -->
<appender name="UNICAST_NOTIFICATION" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/unicast_push.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/unicast_push_%d{yyyy-MM-dd-HH}.log.gz</FileNamePattern>
</rollingPolicy>
<maxHistory>48</maxHistory>
<encoder charset="UTF-8">
<pattern>%msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
</appender>
<appender name="ASYNC_UNICAST_NOTIFICATION" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="UNICAST_NOTIFICATION"/>
</appender>
<!-- UNICAST DATAMESSAGE -->
<appender name="UNICAST_DATA_MESSAGE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/unicast_push_datamsg.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/unicast_push_datamsg_%d{yyyy-MM-dd-HH}.log.gz</FileNamePattern>
</rollingPolicy>
<maxHistory>48</maxHistory>
<encoder charset="UTF-8">
<pattern>%msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
</appender>
<appender name="ASYNC_UNICAST_DATA_MESSAGE" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="UNICAST_DATA_MESSAGE"/>
</appender>
<!-- 统计 -->
<appender name="UNICAST_MONITOR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/monitor.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/monitor_%d{yyyy-MM-dd}.log.gz</FileNamePattern>
</rollingPolicy>
<maxHistory>3</maxHistory>
<encoder charset="UTF-8">
<pattern>${MONITOR_PATTEN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
</appender>
<appender name="ASYNC_UNICAST_MONITOR" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="UNICAST_MONITOR"/>
</appender>
<!-- 限量日志 -->
<appender name="LIMIT_LOGGER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/limit.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/limit_%d{yyyy-MM-dd}.log.gz</FileNamePattern>
</rollingPolicy>
<maxHistory>3</maxHistory>
<encoder charset="UTF-8">
<pattern>${MONITOR_PATTEN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
</appender>
<appender name="ASYNC_LIMIT_LOGGER" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="LIMIT_LOGGER"/>
</appender>
<!-- 智能短信 -->
<appender name="UNICAST_SMS_MESSAGE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/unicast_push_smsmsg.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/unicast_push_smsmsg%d{yyyy-MM-dd}.log.gz</FileNamePattern>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>%msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
</appender>
<appender name="ASYNC_UNICAST_SMS_MESSAGE" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="UNICAST_SMS_MESSAGE"/>
</appender>
<!-- 定时上报统计 -->
<appender name="STAT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/stat.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/stat%d{yyyy-MM-dd}.log.gz</FileNamePattern>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>%msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
</appender>
<appender name="ASYNC_STAT" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="STAT"/>
</appender>
<!-- 定义日志 -->
<logger name="org.apache" level="ERROR"/>
<logger name="org.springframework" level="info"/>
<logger name="com.baidu.disconf" level="debug"/>
<logger name="io.netty" level="ERROR"/>
<logger name="com.xxx.push" level="INFO"/>
<logger name="com.baidu.disconf" additivity="false" level="INFO">
<appender-ref ref="ASYNC_DISCONF"/>
</logger>
<logger name="UNICAST_TRACE" additivity="false" level="INFO">
<appender-ref ref="ASYNC_UNICAST_TRACE"/>
</logger>
<logger name="UNICAST_NOTIFICATION" additivity="false" level="INFO">
<appender-ref ref="ASYNC_UNICAST_NOTIFICATION"/>
</logger>
<logger name="UNICAST_DATA_MESSAGE" additivity="false" level="INFO">
<appender-ref ref="ASYNC_UNICAST_DATA_MESSAGE"/>
</logger>
<logger name="UNICAST_MONITOR" additivity="false" level="INFO">
<appender-ref ref="ASYNC_UNICAST_MONITOR"/>
</logger>
<logger name="LIMIT_LOGGER" additivity="false" level="INFO">
<appender-ref ref="ASYNC_LIMIT_LOGGER"/>
</logger>
<logger name="UNICAST_SMS_MESSAGE" additivity="false" level="INFO">
<appender-ref ref="ASYNC_UNICAST_SMS_MESSAGE"/>
</logger>
<logger name="com.xxx.push.open.unicast.commons.stat" additivity="false" level="INFO">
<appender-ref ref="ASYNC_STAT"/>
</logger>
<!-- 根日志 -->
<root>
<!--<appender-ref ref="stdout"/>-->
<level value="INFO"/>
<appender-ref ref="ASYNC_INFO"/>
<appender-ref ref="ASYNC_WARN"/>
<appender-ref ref="ASYNC_ERROR"/>
</root>
</configuration>
log4j2
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOG_PATH" value="/data/logs/push-trace"/>
<appender name="pushTrace" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_PATH}/push-trace-${APP_NAME}.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>
${LOG_PATH}/push-trace-${APP_NAME}.%d{yyyy-MM-dd-HH}.log.gz
</FileNamePattern>
<maxHistory>24</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>%msg%n</pattern>
</encoder>
</appender>
<appender name="asyncPushTrace" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="pushTrace"/>
</appender>
<logger name="traceLogger" level="INFO" >
<appender-ref ref="asyncPushTrace"/>
</logger>
<root>
<level value="INFO" />
</root>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="30" status="WARN">
<Properties>
<Property name="LOG_NAME" value="phecda-strategy-indonesia" />
<Property name="APP_ID" value="phecda-strategy-indonesia" />
<Property name="LOG_PATH" value="/home/service/var/logs/${APP_ID}/" />
<Property name="LOG_PATTERN" value="[%level{length=5}] %date[%t] [%X{ThreadName}] [%logger:%line] >>> %msg%n" />
<Property name="ROOT_LOG_LEVEL" value="INFO" />
</Properties>
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<ThresholdFilter level="${CONSOLE_LEVEL}" onMatch="ACCEPT" onMismatch="DENY" />
<PatternLayout pattern="${LOG_PATTERN}" />
</Console>
<RollingFile name="FILE" fileName="${LOG_PATH}/${LOG_NAME}.log" filePattern="${LOG_PATH}/${LOG_NAME}.log-%d{yyyy-MM-dd}-%i.log">
<PatternLayout>
<Pattern>${LOG_PATTERN}</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="2048 MB" />
</Policies>
<DefaultRolloverStrategy min="1" max="100" />
</RollingFile>
<RollingFile name="ERROR" fileName="${LOG_PATH}/error.log" filePattern="${LOG_PATH}/error-%d{yyyy-MM-dd}.log">
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY" />
<PatternLayout>
<Pattern>${LOG_PATTERN}</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
<HTTP_xxx name="MONITOR" appId="${APP_ID}" />
</Appenders>
<Loggers>
<logger name="org.springframework" level="${FRAMEWORK_LEVEL}" additivity="true" />
<logger name="org.mybatis" level="${FRAMEWORK_LEVEL}" additivity="true" />
<logger name="ruleLogger" level="ALL" additivity="false" >
<AppenderRef ref="RULE_LOG" />
</logger>
<AsyncRoot level="${ROOT_LOG_LEVEL}" includeLocation="true">
<AppenderRef ref="FILE" />
<AppenderRef ref="CONSOLE" />
<AppenderRef ref="ERROR" />
<AppenderRef ref="MONITOR" />
</AsyncRoot>
</Loggers>
</Configuration>