Ton*_*Day 8 logging playframework
一直在努力在Play 2.3中使用单元测试获得任何日志输出Logger.error("an error").我已经尝试了所有这些似乎已经过时的例子.
我得到的最接近的是build.sbt包含以下内容:
testOptions in Test += Tests.Argument("-Dlogger.resource=conf/test-logger.xml")
Run Code Online (Sandbox Code Playgroud)
这会导致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));
}
}
Run Code Online (Sandbox Code Playgroud)
@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"
Run Code Online (Sandbox Code Playgroud)
从Play 2.5开始,所有内容都只通过logback进行配置,因此我们可以依靠默认的logback机制来查找配置:http://logback.qos.ch/manual/configuration.html.
这意味着在<project_or_module>/test/resources文件夹内部可以放置一个名为logback-test.xml优先于默认文件的文件,logback.xml因为在运行测试时它们都在类路径上.
| 归档时间: |
|
| 查看次数: |
2772 次 |
| 最近记录: |