Play 2.1.1:在application-logger.xml中使用Logback Evaluators

时间:2013-07-07 21:34:33

标签: logging logback playframework-2.1 scala-2.10

我在Play 2.1.1中为我的项目使用自定义日志记录配置。为此,我在conf目录中创建了一个application-logger.xml。这就像一个魅力。

现在我想在日志记录配置文件中添加一个logback评估程序(基于官方文档:http://logback.qos.ch/manual/layouts.html#Evaluators),仅在特定情况下输出%caller信息:

<configuration>

<evaluator name="DISP_CALLER_EVAL">
    <expression>logger.contains("a specific string")</expression>
</evaluator>

<conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${application.home}/logs/application.log</file>
    <encoder>
        <pattern>%date - [%level] - %logger in %thread in caller: %caller{3, DISP_CALLER_EVAL}
            %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" />
<logger name="application" level="DEBUG" />

<root level="ERROR">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
</root>

但是,如果我在将评估程序片段添加到日志配置后启动播放服务器,则根本不会发生任何日志记录,并且服务器根本不会执行该代码。看起来服务器崩溃了。

是否有人在Play 2.1.1上使用评估程序规则进行日志记录配置的工作示例?

1 个答案:

答案 0 :(得分:0)

试试这个

<evaluator name="DISP_CALLER_EVAL" class="ch.qos.logback.classic.boolex.GEventEvaluator">
    <expression>logger.contains("a specific string")</expression>
</evaluator>