使用 JUnit 时,我们将用于记录的目录作为 JVM 属性传递。这在命令行和 Eclipse 中运行良好。但是,当我们将相同的属性传递给 Buildr 测试任务时,它就不起作用了。
test.using :properties => { :"server.name" => "tester", :"log.dir" => log_dir}
我们知道为什么会发生这种情况。该属性是从 JVM 内部而不是外部设置的。这意味着在运行时(加载静态日志记录类时)该属性尚未设置。如果我们稍后查询该属性(例如在单元测试中),那么我们会看到它设置正确。
有谁知道解决方法?
顺便说一句,我们使用的是 log4J,但这个问题适用于任何需要访问 Buildr 设置的 JVM 属性的静态类。