gpt4 book ai didi

java.lang.Class:在 java 程序中初始化 log4j 属性文件时出错

转载 作者:行者123 更新时间:2023-11-29 04:37:10 26 4
gpt4 key购买 nike

我正在尝试使用 log4j 运行独立的 java 程序,但在调试时收到以下消息(控制台上没有 log4j 相关日志):

log= {Logger@1343} "java.lang.Class:ERROR in 18b4aac2"

有人可以建议这里有什么问题吗?

代码如下:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Logger;
import java.io.IOException;
import java.sql.SQLException;

public class log4jExample {

static org.apache.logging.log4j.Logger log = LogManager.getLogger(log4jExample.class.getClass());

public static void main(String[] args)throws IOException,SQLException {
System.out.println("in main...");

log.debug("Hello this is a debug message");
System.out.println("in main...2..");
log.info("Hello this is an info message");
}

}

log4j.properties 文件如下,保存在src/main/resources。

log4j.rootLogger=DEBUG, stdout, file
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=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\test\\log4j-example.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=2
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

我正在使用 VM 选项运行我的 java 程序

-Dlog4j.configurationFile=C:\MyFirstProject\src\main\resources\log4j.properties

最佳答案

在我看来,您似乎混淆了 log4j 版本。您使用的配置文件使用的是 log4j 1.x 格式。您必须将其转换为 log4j 2.x 格式。我试过你的例子,它有效。请参阅下面的详细信息。

pom.xml文件

<?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">
<modelVersion>4.0.0</modelVersion>

<groupId>org.bft.</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.7</version>
</dependency>
</dependencies>
</project>

重构代码

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class log4jExample {

static final Logger logger = LogManager.getLogger(log4jExample.class);

public static void main(String[] args) {
System.out.println("in main...");

logger.info("Hello this is a debug message");
System.out.println("in main...2..");
logger.info("Hello this is an info message");
}
}

log4j.properties 文件(log4j2.x 格式)

status = error
dest = err
name = PropertiesConfig

filter.threshold.type = ThresholdFilter
filter.threshold.level = debug

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %m%n

rootLogger.level = info
rootLogger.appenderRef.stdout.ref = STDOUT

输出:

in main...
Hello this is a debug message
in main...2..
Hello this is an info message

Process finished with exit code 0

引用log4j docs .

关于java.lang.Class:在 java 程序中初始化 log4j 属性文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40857681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com