【问题标题】:Play framework (2.3.7) not using my logback configuration播放框架(2.3.7)不使用我的 logback 配置
【发布时间】:2017-07-28 17:56:43
【问题描述】:

我正在使用 Play 2.3.7

我在这里阅读了文档

https://www.playframework.com/documentation/2.3.x/SettingsLogger

我在我的 conf 目录下创建了一个名为 application-logger.xml(和 logger.xml)的文件

<configuration>
    <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
    <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${application.home}/logs/foo.log</file>
        <encoder>
            <pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
        </encoder>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern>
        </encoder>
    </appender>

    <logger name="play" level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </logger>

    <logger name="application" level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </logger>

    <root level="off" />

</configuration>

现在我运行我的播放应用程序activator clean run,如果出现错误,它不会在控制台上打印任何内容。也没有创建文件“foo.log”。

根据我对文档的阅读,我认为我的所有应用程序代码都将使用一个名为“application”的记录器,而内部播放将使用一个名为“play”的记录器,因此如果我为这两个记录器定义附加程序,我将拥有一切在控制台和我的文件上。

但这似乎并没有发生。

我已将 application-logger.xml 文件放在 application.conf 文件旁边的 conf 目录中。

我也尝试将我的文件重命名为 logger.xml,但它仍然被忽略了。

编辑::

我什至尝试像这样运行我的应用程序

./activator -Dlogger.resource=logger.xml run
./activator -Dlogger.file=./conf/logger.xml run

但是没有什么可以让播放框架拾取该文件。什么都没有。

【问题讨论】:

  • 能否尝试将路径替换为${application.home}/logs/foo.log?另外,请确保您的 application.conf 文件中没有关闭日志记录。
  • 这些是我的application.conf文件logger.root = INFO logger.play = INFO logger.application = INFO 中的条目

标签: scala playframework


【解决方案1】:

我在这里找到了解决方案

https://www.reddit.com/r/scala/comments/6q6vb3/why_is_it_such_a_big_deal_for_play_framework_to/

基本上在启动应用时使用 logback 配置设置

所以activator -Dlogback.configurationFile=logger.xml运行`

播放文档设置-Dlogger.resource-Dlogger.file 不起作用。

【讨论】:

    【解决方案2】:

    这可能是自定义 ApplicationLoader 的情况,它需要更新加载

    LoggerConfigurator(context.environment.classLoader).foreach {
      _.configure(context.environment, context.initialConfiguration, Map.empty)
    }
    

    https://www.playframework.com/documentation/2.6.x/SettingsLogger#Using-a-custom-application-loader

    【讨论】:

      【解决方案3】:

      我从 IntelliJ 运行它,并使用 -Dlogger.resource=logback-test.xml 运行顺畅。

      【讨论】:

        猜你喜欢
        • 2015-02-19
        • 2013-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-17
        • 1970-01-01
        • 1970-01-01
        • 2015-08-10
        相关资源
        最近更新 更多