log4j2在JavaWeb项目中的配置与使用

时间:2025-03-23 09:27:16
<?xml version="1.0" encoding="UTF-8"?> <!-- configuration的status,用来设置log4j2自身内部的信息输出,可以不设置。当设置为trace时,会有各种详细输出 --> <!-- monitorInterval: log4j能够自动检测修改配置文件和重新配置本身,设置间隔秒数--> <configuration status="WARN" monitorInterval="300"> <appenders> <!--控制台输出所有日志 --> <console name="Console" target="SYSTEM_OUT"> <!--输出日志的格式 --> <PatternLayout pattern="[%-5p] %d{yyyy-MM-dd HH:mm:ss} method:%l%n" /> </console> <!-- 打印出info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 --> <RollingFile name="InfoFile" fileName="E://logs/" filePattern="E://logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%"> <!-- 过滤器,表示只输出info级别的日志。ACCEPT:接收;DENY:拒绝;NEUTRAL:中立 --> <Filters> <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL" /> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" /> </Filters> <PatternLayout pattern="[%-5p] %d{yyyy-MM-dd HH:mm:ss} METHOD:%l%n%m%n%n" /> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="10MB" /> </Policies> <!-- DefaultRolloverStrategy如不设置,则默认同一文件夹下最多7个文件,这里设置了31 --> <DefaultRolloverStrategy max="31"></DefaultRolloverStrategy> </RollingFile> <RollingFile name="WarnFile" fileName="E://logs/" filePattern="E://logs/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%"> <Filters> <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL" /> <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY" /> </Filters> <PatternLayout pattern="[%-5p] %d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n%n" /> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="10MB" /> </Policies> <DefaultRolloverStrategy max="31" /> </RollingFile> <RollingFile name="ErrorFile" fileName="E://logs/" filePattern="E://logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%"> <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" /> <PatternLayout pattern="[%-5p] %d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n%n" /> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="10MB" /> </Policies> <DefaultRolloverStrategy max="31" /> </RollingFile> </appenders> <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效 --> <loggers> <!--过滤掉spring和mybatis的一些无用的DEBUG信息 --> <logger name="" level="INFO"></logger> <logger name="" level="INFO"></logger> <!-- 只输出INFO及以上级别的日志 --> <root level="INFO"> <appender-ref ref="Console" /> <appender-ref ref="InfoFile" /> <appender-ref ref="WarnFile" /> <appender-ref ref="ErrorFile" /> </root> </loggers> </configuration>