使用 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)
方法,而不是 Logger
的 info(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);
}
我在 运行 测试自动化时使用 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)
方法,而不是 Logger
的 info(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);
}