java - 启动自动测试时 Play Framework 中的配置日志记录

标签 java log4j playframework

我在我的 Play Framework 应用程序中配置了日志记录。当我在生产或开发模式下运行应用程序或通过命令运行测试( Play 测试)时 - 一切正常,但当我运行他们的“Play 自动测试”时测试无法执行。请帮忙!

在 application.conf 中:

application.log=INFO
application.log.path=/log4j.xml 

log4j.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="file" class="org.apache.log4j.RollingFileAppender">
      <param name="File" value="${application.path}/logs/application.log"/>
      <param name="MaxFileSize" value="1MB"/>
      <param name="MaxBackupIndex" value="100"/>
      <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p ~ %m %n"/>
      </layout>
  </appender>
 <logger name="play">
     <level value="error"/>
 </logger>
 <root>
     <priority value="error"/>
     <appender-ref ref="file"/>
 </root>
</log4j:configuration>

当我使用以下 log4j.xml 文件时:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="console" class="org.apache.log4j.ConsoleAppender">
      <param name="Target" value="System.out"/>
      <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="%m%n"/>
      </layout>
  </appender>
 <logger name="play">
     <level value="debug"/>
 </logger>
 <root>
     <priority value="info"/>
     <appender-ref ref="console"/>
 </root>
</log4j:configuration>     

运行命令“play auto-test”的测试已成功执行。请告诉如何配置在“Play 自动测试”中运行和执行测试的 Play (输出到文件)中的日志记录!

最佳答案

这几乎是一个游戏!漏洞。这不是因为您使用单独的文件配置了 log4j,尽管这样做会隐藏另一条错误消息:“play.tmp is null when it should be play.tmp=none”(有点像这样 - 你'如果您删除自定义 log4j.xml 文件并重新执行“Play 自动测试”),就会得到这个。问题是,即使您将其设置为 play.tmp=none,它仍然无法正常工作。此外,如果您将他们的在线文档与 Play! 的控制台输出进行比较,您就会发现问题所在:

文档说:

“‘auto-test’命令与‘test’命令的作用相同,但它会自动启动浏览器,运行所有测试,然后停止。”

控制台说(当你做“Play 自动测试”时):

ATTENTION: You're running Play! in DEV mode
~
~ Go to http://localhost:9000/@tests to run the tests
~

关于java - 启动自动测试时 Play Framework 中的配置日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8359435/

相关文章:

java - 简单的英语经纪人架构模式

java - 不明确的方法调用 println char 数组和 String(而不是 Object)

forms - Play Framework 2.3 如何向示例应用程序添加唯一约束

java - Android RSS 阅读器 - 教程错误

java - 让用户在cmd中选择多个元素

java - Log 4j根据模块写入不同文件的好方法

java - 使用 Log4j 进行日志记录

当 logrotate 旋转日志文件时,log4j fileappender 不会切换到新文件

java - Play Framework 。如何使用外部端点上传照片?

json - 我如何使用继承向Play框架中的许多类编写写操作