使用 log4j 写入日志时出现 Stack Overflow Error

Getting Stack Overflow Error when writing log by using log4j

我在 运行 测试自动化时使用 log4j 写日志。

这是我写日志的方法:

public class Log {

private static Logger Log = Logger.getLogger(Log.class.getName()); 

public static void info(String message)
{
    Log.info(message);
}

}

但是每当我使用它时,都会抛出堆栈溢出错误,如下所示:

调用方式:

Log.info("Click action is performed on My Account link");

错误:

java.lang.WhosebugError at 
helpers.Log.info(Log.java:21) at 
helpers.Log.info(Log.java:21) at 
helpers.Log.info(Log.java:21) at 
helpers.Log.info(Log.java:21)

有人可以帮忙吗?

您正在调用 class 的 info(String) 方法,而不是 Loggerinfo(String) 方法:您的 class 也称为 Log.

改用 Log.Log.info - 或重命名您的 Log class,或重命名您的 Log 成员变量。

这是遵循 Java 命名约定的原因之一。

我没有看到 log4j.properties 文件的配置。试试这个

import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
public class Logs {

    public static Logger Application_Log = Logger.getLogger(Logs.class.getName());

    public Logs(){
         DOMConfigurator.configure("log4j-config.xml");
    }
public void info(String message){
        Application_Log.info(message);
    }