IDEA 里的测试类,三个不同的包,每个包不同的测试类
控制台如果出现以下错误就是log4j2的存放位置错误,我是web项目放在resources编译路径下就好了
以下是xml里的代码
<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<Configuration status="WARN" monitorInterval="500">
<!--定义日志储存文件目录-->
<properties>
<property name="LOG_HOME">E:/Java-courseware/mysql/java_jsp_SERVLETT/log4j/log4j2</property>
</properties>
<Appenders>
<!--控制台输出所有日志-->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<!--Info级别日志输出 filname 是路径 log_home 是上面的变量名 -->
<RollingRandomAccessFile name="serverInfoFile"
fileName="${LOG_HOME}/server/serverinfo/info.log"
filePattern="${LOG_HOME}/info-%d{yyyy-MM-dd}-%i.log"><!-- 新建文件名称格式和路径 -->
<Filters>
<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<!-- <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level %F[%thread][%file:%line] - %msg%n" />-->
<PatternLayout pattern="%d [%t] %-5level [%c:%L] %M -【traceId:%X{traceId}】 - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 -->
<DefaultRolloverStrategy max="20" />
</RollingRandomAccessFile>
<!--warn级别日志输出-->
<RollingRandomAccessFile name="serverWarnFile"
fileName="${LOG_HOME}/server/serverwarn/warn.log"
filePattern="${LOG_HOME}/warn-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout pattern="%d [%t] %-5level [%c:%L] %M -【traceId:%X{traceId}】 - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="20" />
</RollingRandomAccessFile>
<!--Error级别日志输出-->
<RollingRandomAccessFile name="serverErrorFile"
fileName="${LOG_HOME}/server/servererror/error.log"
filePattern="${LOG_HOME}/error-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<PatternLayout pattern="%d [%t] %-5level [%c:%L] %M -【traceId:%X{traceId}】 - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="20" />
</RollingRandomAccessFile>
<!-- servlet 包下的info leven -->
<RollingRandomAccessFile name="servletInfoFile"
fileName="${LOG_HOME}/servlet/servletinfo/info.log"
filePattern="${LOG_HOME}/info-%d{yyyy-MM-dd}-%i.log"><!-- 新建文件名称格式和路径 -->
<Filters>
<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<!-- <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level %F[%thread][%file:%line] - %msg%n" />-->
<PatternLayout pattern="%d [%t] %-5level [%c:%L] %M -【traceId:%X{traceId}】 - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 -->
<DefaultRolloverStrategy max="20" />
</RollingRandomAccessFile>
<!-- servlet 包下的warn leven-->
<RollingRandomAccessFile name="servletWarnFile"
fileName="${LOG_HOME}/servlet/servletwarn/warn.log"
filePattern="${LOG_HOME}/warn-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout pattern="%d [%t] %-5level [%c:%L] %M -【traceId:%X{traceId}】 - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="20" />
</RollingRandomAccessFile>
<!--servlet 包下的error leven-->
<RollingRandomAccessFile name="servletErrorFile"
fileName="${LOG_HOME}/servlet/servleterror/error.log"
filePattern="${LOG_HOME}/error-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<PatternLayout pattern="%d [%t] %-5level [%c:%L] %M -【traceId:%X{traceId}】 - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="20" />
</RollingRandomAccessFile>
<!-- dao 包下的info leven-->
<RollingRandomAccessFile name="daoInfoFile"
fileName="${LOG_HOME}/dao/daoinfo/info.log"
filePattern="${LOG_HOME}/info-%d{yyyy-MM-dd}-%i.log"><!-- 新建文件名称格式和路径 -->
<Filters>
<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<!-- <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level %F[%thread][%file:%line] - %msg%n" />-->
<PatternLayout pattern="%d [%t] %-5level [%c:%L] %M -【traceId:%X{traceId}】 - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 -->
<DefaultRolloverStrategy max="20" />
</RollingRandomAccessFile>
<!-- dao 包下的warn leven-->
<RollingRandomAccessFile name="daoWarnFile"
fileName="${LOG_HOME}/dao/daowarn/warn.log"
filePattern="${LOG_HOME}/warn-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout pattern="%d [%t] %-5level [%c:%L] %M -【traceId:%X{traceId}】 - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="20" />
</RollingRandomAccessFile>
<!--dao 包下的error leven-->
<RollingRandomAccessFile name="daoErrorFile"
fileName="${LOG_HOME}/dao/daoerror/error.log"
filePattern="${LOG_HOME}/error-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<PatternLayout pattern="%d [%t] %-5level [%c:%L] %M -【traceId:%X{traceId}】 - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="20" />
</RollingRandomAccessFile>
</Appenders>
<!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
<Loggers>
<!-- 自定义 logger 对象 levels - OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL
additivity="false" 不再继承 rootlogger对象
level 等级 只会去找等级高的或者相等的等级目的地
选择包 然后给日志等级配一个目的地-->
<Logger name="com.log4j2.server" level="Debug" additivity="false"><!-- server 包下指定的level 日志-->
<AppenderRef ref="serverInfoFile" />
<AppenderRef ref="serverWarnFile" />
<AppenderRef ref="serverErrorFile" />
</Logger>
<Logger name="com.log4j2.servlet" level="Debug" additivity="false"><!-- servlet 包下指定的level 日志-->
<AppenderRef ref="servletInfoFile" />
<AppenderRef ref="servletWarnFile" />
<AppenderRef ref="servletErrorFile" />
</Logger>
<Logger name="com.log4j2.dao" level="Debug" additivity="false"><!-- servlet 包下指定的level 日志-->
<AppenderRef ref="daoInfoFile" />
<AppenderRef ref="daoWarnFile" />
<AppenderRef ref="daoErrorFile" />
</Logger>
<Root level="Debug">
</Root>
</Loggers>
</Configuration>
三个包里的文件回去找对应的Logger
刚学log4j2 做的笔记,如果有些不足,希望有大佬来补充,不喜勿喷