使用Logger.error("an error")
努力在Play 2.3的单元测试中获取任何日志记录输出。我已经尝试了所有似乎都过时的these examples。
我最接近的是build.sbt
,其中包含以下内容:
testOptions in Test += Tests.Argument("-Dlogger.resource=conf/test-logger.xml")
这会导致test-logger.xml
文件配置记录器,但我仍然无法从任何测试中获得输出。
有人在Play 2.3中有过这方面的成功吗?
临时解决方法
我目前正在使用一个快速的util类来处理它,直到它被修复。这里添加,因为它可能对其他人有用。
public class Logger {
public static void debug(String message) {
System.out.println(String.format("[debug] %s", message));
}
public static void info(String message) {
System.out.println(String.format("[info] %s", message));
}
public static void warn(String message) {
System.out.println(String.format("[warn] %s", message));
}
public static void error(String message) {
System.err.println(String.format("[error] %s", message));
}
}
答案 0 :(得分:9)
@Jamesinchina更新了他的答案(在我引用的问题中)以支持 Play Framework 2.3 :
我编辑了删除play.Project的答案,该项目已在2.3.x中删除,但其余的仍然有效 - 我们目前正在项目中使用它。
在conf/test-logger.xml
中添加build.sbt
文件和以下行可以解决问题:
javaOptions in Test += "-Dlogger.file=conf/test-logger.xml"
答案 1 :(得分:5)
由于Play 2.5一切都是通过logback配置的,所以我们可以依靠默认的logback机制来查找配置:http://logback.qos.ch/manual/configuration.html。
这意味着在<project_or_module>/test/resources
文件夹中可以放置一个名为logback-test.xml
的文件,该文件优先于默认的logback.xml
,因为在运行测试时它们都在类路径上。
答案 2 :(得分:1)
您可以尝试将此添加到build.sbt:
testOptions + = Tests.Argument(TestFrameworks.JUnit,&#34; -v&#34;,&#34; -q&#34;)
查看此页面:https://groups.google.com/forum/#!topic/play-framework/WiqpjWZ_Qt0