Spring整合Log4j2的整体流程
Lo
1)导入log4j-core依赖
<!--导入日志框架-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.20.0</version>
</dependency>
2)创建log4j2.xml文件
在项目中resource目录下创建log4j2.xml文件
3)配置log4j.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<!--配置控制台输出日志-->
<Console name="Console" target="SYSTEM_OUT">
<!--日志的输出格式-->
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<!--配置文件输出日志-->
<File name="File" fileName="d:/logs/app.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<!--日志级别为debug-->
<Root level="debug">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
4)测试
注:这个需要使用spring框架创建对象才能显示出log4j日志
Logj4无法打印的日志情况
1)不是使用spring框架创建对象,使用反射创建对象
2)不是使用spring框架创建对象,使用手动创建对象的方式创建对象
以上两种都没有日志打印
3)解决办法
1.通过导入log4j-slf4j2-impl jar包
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j2-impl</artifactId>
<version>2.23.1</version>
</dependency>
2.然后在创建Logger
private static Logger logger= LoggerFactory.getLogger(当前类.class);
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xiji.Users;
public class CreateUsersByHandTest {
private static Logger logger= LoggerFactory.getLogger(CreateUsersByHandTest.class);
@Test
public void createUsers(){
System.out.println("通过手写创建");
Users users = new Users();
/**
手动输出日志即可解决
*/
logger.info("通过log4j2打印日志"+users);
System.out.println(users);
users.userInfo();
}
}