一、添加log4j2.xml配置文件
在src/main/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} %-4level %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} %-4level %l - %msg%n" charset="UTF-8" /><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="DEBUG"><AppenderRef ref="Console" /><AppenderRef ref="uleWalletEjbLogFile" /></Root><!-- 过滤掉 指定类的debug --><Logger name="io.netty" level="info" additivity="false"><AppenderRef ref="Console" /></Logger><Logger name="org.eclipse.jetty" level="info" additivity="false"></Logger><!-- 收到坐席消息<Logger name="com.joincall.j3c.agentservice.AbstractAgentConnector" level="info" additivity="false"><AppenderRef ref="Console" /></Logger>--><!-- 过滤掉 指定类的debug <AppenderRef ref="Console" /> --><Logger name="org.apache.activemq" level="debug" additivity="false"></Logger></Loggers> </Configuration>
二、在pom.xml中添加引用
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.17.2</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>2.17.2</version></dependency>

三、代码中调用
添加引用
import org.slf4j.Logger; import org.slf4j.LoggerFactory;
定义
private static final Logger logger = LoggerFactory.getLogger(App.class);
使用
logger.info("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); logger.error("@@@@@@@@ 启动 JavaMavenDemo V1.8.8 @@@@@@"); logger.debug("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");

四、编译且运行
mvn compile exec:java -Dexec.mainClass="com.JavaMavenDemo.App" #编译且运行App中的main函数
运行效果

在logs目录下

这个 log4j2.xml 配置,会每小时创建一个文件,每天创建一个目录

