| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- status="warn" 表示Log4j2自身的日志级别,不影响应用日志 -->
- <configuration status="warn" monitorInterval="30">
-
- <!-- 定义常用变量 -->
- <properties>
- <property name="LOG_HOME">logs</property>
- <property name="APP_NAME">dc-api</property>
- <!-- 日志输出格式:时间 [线程] 级别 [类名] - 消息 -->
- <property name="PATTERN_CONSOLE">%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%-5level}{FATAL=red, ERROR=red, WARN=yellow, INFO=green, DEBUG=cyan, TRACE=blue} [%thread] %logger{36} - %msg%n</property>
- <property name="PATTERN_FILE">%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n</property>
- <!-- 错误日志详细格式:包含异常堆栈 -->
- <property name="PATTERN_ERROR">%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%ex{full}%n</property>
- </properties>
- <!-- 定义所有的appender -->
- <appenders>
-
- <!-- 控制台输出:彩色日志,适合开发环境 -->
- <Console name="Console" target="SYSTEM_OUT">
- <PatternLayout pattern="${PATTERN_CONSOLE}"/>
- </Console>
- <!-- 所有INFO及以上级别的日志,按日期和大小滚动 -->
- <RollingFile name="InfoFile" fileName="${LOG_HOME}/${APP_NAME}.log"
- filePattern="${LOG_HOME}/$${date:yyyy-MM}/${APP_NAME}-%d{yyyy-MM-dd}-%i.log.gz">
- <PatternLayout pattern="${PATTERN_FILE}"/>
- <Policies>
- <!-- 每天生成一个新文件 -->
- <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
- <!-- 文件大小超过50MB时滚动 -->
- <SizeBasedTriggeringPolicy size="50 MB"/>
- </Policies>
- <!-- 最多保留30天的日志 -->
- <DefaultRolloverStrategy max="30">
- <Delete basePath="${LOG_HOME}" maxDepth="2">
- <IfFileName glob="*/${APP_NAME}-*.log.gz"/>
- <IfLastModified age="30d"/>
- </Delete>
- </DefaultRolloverStrategy>
- </RollingFile>
- <!-- 错误日志:只记录ERROR级别,包含完整异常堆栈 -->
- <RollingFile name="ErrorFile" fileName="${LOG_HOME}/${APP_NAME}-error.log"
- filePattern="${LOG_HOME}/$${date:yyyy-MM}/${APP_NAME}-error-%d{yyyy-MM-dd}-%i.log.gz">
- <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
- <PatternLayout pattern="${PATTERN_ERROR}"/>
- <Policies>
- <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
- <SizeBasedTriggeringPolicy size="50 MB"/>
- </Policies>
- <DefaultRolloverStrategy max="90">
- <Delete basePath="${LOG_HOME}" maxDepth="2">
- <IfFileName glob="*/${APP_NAME}-error-*.log.gz"/>
- <IfLastModified age="90d"/>
- </Delete>
- </DefaultRolloverStrategy>
- </RollingFile>
- <!-- SQL日志:专门记录MyBatis的SQL语句(仅开发环境) -->
- <RollingFile name="SqlFile" fileName="${LOG_HOME}/${APP_NAME}-sql.log"
- filePattern="${LOG_HOME}/$${date:yyyy-MM}/${APP_NAME}-sql-%d{yyyy-MM-dd}-%i.log.gz">
- <PatternLayout pattern="${PATTERN_FILE}"/>
- <Policies>
- <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
- <SizeBasedTriggeringPolicy size="100 MB"/>
- </Policies>
- <DefaultRolloverStrategy max="7">
- <Delete basePath="${LOG_HOME}" maxDepth="2">
- <IfFileName glob="*/${APP_NAME}-sql-*.log.gz"/>
- <IfLastModified age="7d"/>
- </Delete>
- </DefaultRolloverStrategy>
- </RollingFile>
- </appenders>
- <!-- 定义logger -->
- <loggers>
-
- <!-- MyBatis SQL日志:输出到专门的SQL文件 -->
- <Logger name="cn.com.goldenwater.dcproj.dao" level="debug" additivity="false">
- <AppenderRef ref="SqlFile"/>
- <AppenderRef ref="Console"/>
- </Logger>
-
- <!-- MyBatis框架日志 -->
- <Logger name="org.mybatis" level="warn" additivity="false">
- <AppenderRef ref="Console"/>
- <AppenderRef ref="InfoFile"/>
- </Logger>
-
- <!-- Spring框架日志:生产环境设为WARN -->
- <Logger name="org.springframework" level="warn" additivity="false">
- <AppenderRef ref="Console"/>
- <AppenderRef ref="InfoFile"/>
- </Logger>
-
- <!-- Druid数据源日志 -->
- <Logger name="com.alibaba.druid" level="warn" additivity="false">
- <AppenderRef ref="Console"/>
- <AppenderRef ref="InfoFile"/>
- </Logger>
-
- <!-- Hibernate Validator日志 -->
- <Logger name="org.hibernate.validator" level="warn" additivity="false">
- <AppenderRef ref="Console"/>
- <AppenderRef ref="InfoFile"/>
- </Logger>
-
- <!-- Apache HttpClient日志 -->
- <Logger name="org.apache.http" level="warn" additivity="false">
- <AppenderRef ref="Console"/>
- <AppenderRef ref="InfoFile"/>
- </Logger>
-
- <!-- 业务代码日志:INFO级别 -->
- <Logger name="cn.com.goldenwater" level="info" additivity="false">
- <AppenderRef ref="Console"/>
- <AppenderRef ref="InfoFile"/>
- <AppenderRef ref="ErrorFile"/>
- </Logger>
-
- <!-- 根logger:默认INFO级别 -->
- <root level="info">
- <AppenderRef ref="Console"/>
- <AppenderRef ref="InfoFile"/>
- <AppenderRef ref="ErrorFile"/>
- </root>
-
- </loggers>
- </configuration>
|