Java log4j错误:值未由键解析:项目\报告\目录

Java log4j错误:值未由键解析:项目\报告\目录,java,log4j,Java,Log4j,我尝试在我的项目中使用log4j,并创建了以下逻辑: 日志类别: public class Log { //Initialize Log4j instance private static Logger Log = Logger.getLogger(Log.class.getName()); //We can use it when starting tests public static void startLog (String testClassName)

我尝试在我的项目中使用log4j,并创建了以下逻辑:

日志类别:

public class Log {
    //Initialize Log4j instance
    private static Logger Log = Logger.getLogger(Log.class.getName());

    //We can use it when starting tests
    public static void startLog (String testClassName){
        Log.info("Test is Starting...");
    }

    //We can use it when ending tests
    public static void endLog (String testClassName){
        Log.info("Test is Ending...");
    }

    //Info Level Logs
    public static void info (String message) {
        Log.info(message);
    }

    //Warn Level Logs
    public static void warn (String message) {
        Log.warn(message);
    }

    //Error Level Logs
    public static void error (String message) {
        Log.error(message);
    }

    //Fatal Level Logs
    public static void fatal (String message) {
        Log.fatal(message);
    }

    //Debug Level Logs
    public static void debug (String message) {
        Log.debug(message);
    }
}
log4j.属性

#logging level
log4j.rootLogger=INFO, stdout, file, console

# stdout settings
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=%m%n

log4j.logger.org.mortbay.log = INFO


# File settings
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=c:\\Combo.log
log4j.appender.file.MaxFileSize=1MB
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
因此,当我尝试执行测试时:

公共类LoginTests扩展了BaseTest{

@Test (priority = 0, description="Invalid Login Scenario with wrong username and password.")
public void invalidLoginTest_InvalidUserNameInvalidPassword () {
    Log.info("Debug message");
}
我得到了stacktrace,它以:

最后是:

控制台包含许多行(几百行),其中包含文本
2020-11-05 23:00:51占位符解析程序[main][WARN]值,未按键解析:项目报告目录

使用
java.lang.StackOverflowerr
验证长stactrace:


此错误是什么意思,以及如何解决此问题?

当缺少文件
lo4j.properties
时,会出现此问题

项目运行良好的文件示例:

#根记录器选项
log4j.rootLogger=信息、文件、标准输出
#将日志消息直接发送到日志文件
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.file=${user.dir}/log4j/log4j-test-automation.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.patternalyout
log4j.appender.file.layout.ConversionPattern=%d{yyyyy-MM-dd HH:MM:ss}%-5p%c{1}:%L-%m%n
#不要附加旧文件。每次都创建一个新的日志文件
log4j.appender.dest1.Append=false
#将日志消息直接发送到标准输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.patternalyout
log4j.appender.stdout.layout.ConversionPattern=[%-4p]%d{dd-MM-yy HH:MM:ss}%t}%m%n