<?xml version="1.0" encoding="UTF-8"?>
<!-- 当scan属性设置为true时,配置文件如果发生改变,将会被重新加载 debug为true将打印出logback内部日志信息,实时查看logback运行状态-->
<configuration scan="true" debug="false">
<!--项目路径-->
<property name="log.dir" value="/software/logs"/>
<!--项目名称-->
<property name="log.name" value="wisdom-data-big"/>
<!--为了防止进程退出时,内存中的数据丢失-->
<shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
<!--输出到控制台 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!-- 格式化 -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] %c - %m%n</pattern>
</encoder>
</appender>
<!-- 输出日志文件 INFO 级别 -->
<appender name="logInfoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 是否追加 默认为true -->
<append>true</append>
<!-- filter过滤器 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
<!-- 滚动策略 日期+大小 策略 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件路径-->
<fileNamePattern>${log.dir}/${log.name}/info/${log.name}.%d{yyyyMMdd}.log</fileNamePattern>
<!-- 日志保存周期 -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<!-- 格式化 -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%p] [%t] %c [method:%M] [column:%L] - %m%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 输出日志文件 ERROR 级别 -->
<appender name="logErrorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 是否追加 默认为true -->
<append>true</append>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<!-- 滚动策略 日期+大小 策略 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件路径-->
<fileNamePattern>${log.dir}/${log.name}/error/${log.name}.%d{yyyyMMdd}.log</fileNamePattern>
<!-- 日志保存周期 -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<!-- 格式化 -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%p] [%t] %c [method:%M] [column:%L] - %m%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 解决debug模式下循环发送的问题 -->
<logger name="org.apache.http.impl.conn.Wire" level="WARN"/>
<!-- 特殊处理 -->
<logger name="org.springframework" level="warn"/>
<logger name="com.netflix.discovery" level="warn"/>
<root level="INFO">
<appender-ref ref="console"/>
<appender-ref ref="logInfoFile"/>
<appender-ref ref="logErrorFile"/>
</root>
</configuration>