【问题标题】:cant get log4j to run in play! framework 2.2.1 (scala project)无法让 log4j 在游戏中运行!框架 2.2.1(scala 项目)
【发布时间】:2013-12-23 21:16:02
【问题描述】:

我无法让 log4j 在 play framework 2.2.1 中运行

我使用以下 log4j.properties:

log4j.rootLogger=INFO
log4j.logger.deng=INFO
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

application.conf:

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

scala 使用示例:

object SomeService {

  private val log = Logger.getLogger(this.getClass())

  def someMethod() = {
      log.error("test")
  }
}

如果我运行测试,我会得到以下控制台输出:

log4j:WARN No appenders could be found for logger (SomeService.class).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

有人可以帮我解决这个问题吗?

非常感谢

【问题讨论】:

标签: java scala playframework-2.0 log4j


【解决方案1】:

首先,摆脱 log4J 的东西(这是 2008 年的),只使用 Play 附带的通过 SLF4J 的 Logback。 Even the authors of log4j would tell you that 因为他们也是 Logback 的作者。

然后创建一个名为 application-logger.xmlalternative logback configuration file 并将其复制到 Play 应用程序的 conf 文件夹,以便在部署时加载它。

有关使用 Play 配置 Logback 的更多信息!框架,见Configuring logging

【讨论】:

  • 我不确定它是否是必需的,或者 Play/Logback 是否默认找到它,但在我们的应用程序中,我们在 application.conf 中明确设置了“logback.configurationFile=application-logger.xml”。以为我会提一下,以防万一。
  • 更新:默认情况下,Play 会加载 conf/application-logger.xml 或 conf/logger.xml
  • 在 2.3.x 游戏中不是这样!遗憾的是,此类文件没有被拾取。
  • 如果我想要打印 API 的日志并且该 API 使用 log4j 怎么办?
  • Logback 和 Spark 玩的不太好,有些项目需要同时玩和 Spark
猜你喜欢
  • 2013-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-07
  • 2015-01-20
  • 1970-01-01
相关资源
最近更新 更多