一、将原有的 log4j.properties 删除
二、在resources 目录下 新建 log4j2.xml 文件
注:resources 一定要配置为 资源文件夹
log4j2.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="info" monitorInterval="60"> <!--定义了两个常量方便后面复用 --> <properties> <!--生成的日志文件目录地址 --> <property name="LOG_HOME">logs/</property> <!--日志文件名称 --> <property name="FILE_NAME">LogFile</property> </properties> <!--先定义所有的appender--> <Appenders> <!-- 定义控制台输出 --> <Console name="Console" target="SYSTEM_OUT"> <!--输出日志的格式--> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %l - %msg%n" /> </Console> <!--满足一定条件后,就重命名原日志文件用于备份,并从新生成一个新的日志文件 --> <!--fileName:指定当前日志文件的位置和文件名称 filePattern:指定当发生Rolling时,文件的转移和重命名规则--> <RollingFile name="uleWalletEjbLogFile" fileName="${LOG_HOME}/${FILE_NAME}.log" filePattern="${LOG_HOME}/$${date:yyyy-MM-dd}/${FILE_NAME}-%d{yyyy-MM-dd HH}-%i.log"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %l - %msg%n" /> <Policies> <!--TimeBasedTriggeringPolicy这个配置需要和filePattern结合使用, 注意filePattern中配置的文件重命名规则是${FILE_NAME}-%d{yyyy-MM-dd HH-mm}-%i, 最小的时间粒度是mm,即分钟,TimeBasedTriggeringPolicy指定的size是1,结合起来就是每1分钟生成一个新文件。 如果改成%d{yyyy-MM-dd HH},最小粒度为小时,则每一个小时生成一个文件。 --> <TimeBasedTriggeringPolicy interval="1" /> <!--SizeBasedTriggeringPolicy 指定当文件体积大于size指定的值时,触发Rolling 2048 MB --> <SizeBasedTriggeringPolicy size="20 MB" /> </Policies> <DefaultRolloverStrategy max="30" /> </RollingFile> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="Console" /> <AppenderRef ref="uleWalletEjbLogFile" /> </Root> </Loggers> </Configuration>
这样的配置是 在logs 目录 下生成 每小时一个文件 最大20MB 最多30个
pom.xml
将下面的去掉
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.21</version> </dependency>
改为
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.3</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.3</version> <!-- <scope>provided</scope> --> </dependency> <!-- slf4j核心包 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.2</version> </dependency> <!--用于与slf4j保持桥接--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.3</version> </dependency>
重新编译,打包即可。
注:如果出现下面的错误 说明 log4j2.xml 没有加载上
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
此时查看
pom.xml 是否有这段代码
如果 有则 应该加 下
<include>**/**.xml</include>
就可以了。