后端用的是spring框架,
我这样封装了一个log4j类:
package cn.lai.App.Util;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class log4j {
private static Logger logger = null;
private static String loggerName = "ApplicationLogger";
private void log4j(){
}
static {
logger = LogManager.getLogger(loggerName);
}
public static Logger getLogger(){
if (logger == null){
logger = LogManager.getLogger(loggerName);
}
return logger;
}
public static void info(String msg){
Logger log = getLogger();
log.info(msg);
}
}
在pom.xml中排除了不需要的logging,引入了log4j
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
</dependencies>
</project>
然后在application.yml中定义了log4j配置文件的位置:
logging:
config: classpath:log4j.properties
最后这样配了一个log4j.properties
:
log4j.rootLogger = ALL,stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %c%d{yyyy-MM-dd HH:mm:ss,SSS}%m%n
程序里这样打印了:
import cn.lai.App.Util.log4j;
log4j.info("这是一条测试数据");
结果并没有输出任何信息
为什么?
解决了
log4j.properties
中的格式是log4j1
的把
pom
中的log4j2
改为log4j1
就好了如下: