Playframework 如何使404页不写入错误日志?

Playframework 如何使404页不写入错误日志?,playframework,playframework-1.x,Playframework,Playframework 1.x,在我们的哲学中,错误日志总是由程序员错误引起的 在Play 1.2.x prod模式下,对不存在页面的任何访问都将触发错误日志: ERROR (play) ~ MyController.myAction action not found Action not found Action MyController.myAction could not be found. Error raised is No method public static void myAction() was foun

在我们的哲学中,错误日志总是由程序员错误引起的

在Play 1.2.x prod模式下,对不存在页面的任何访问都将触发错误日志:

ERROR (play) ~ 
MyController.myAction action not found
Action not found
Action MyController.myAction could not be found. Error raised is No method public static void myAction() was found in class controllers.MyController
play.exceptions.ActionNotFoundException: Action MyController.myAction not found
    at play.mvc.ActionInvoker.getActionMethod(ActionInvoker.java:604)
    at play.mvc.ActionInvoker.resolve(ActionInvoker.java:85)
    at Invocation.HTTP Request(Play!)
Caused by: java.lang.Exception: No method public static void myAction() was found in class controllers.MyController

在这种情况下,我如何配置Play以不发布错误日志?最多可能是一个
警告
日志级别?

用于记录此日志的代码位于ActionInvoker.java(播放1.2.5RC4):


因此,似乎没有办法调整ActionNotFoundException的日志记录级别。我同意这不应该是“错误”级别。我建议您在。

打开一张票据,虽然不是最优雅的解决方案,但您可以使用Apache log4j Extras包中的
ExpressionFilter
类从默认错误日志中过滤这些异常,并进行以下更改:

依赖项。yml

- log4j -> apache-log4j-extras 1.2.17:
    transitive: false
log4j.appender.<appender>.filter.1=org.apache.log4j.filter.ExpressionFilter
log4j.appender.<appender>.filter.1.expression=EXCEPTION ~= play.exceptions.ActionNotFoundException
log4j.appender.<appender>.filter.1.acceptOnMatch=false
.conf

- log4j -> apache-log4j-extras 1.2.17:
    transitive: false
log4j.appender.<appender>.filter.1=org.apache.log4j.filter.ExpressionFilter
log4j.appender.<appender>.filter.1.expression=EXCEPTION ~= play.exceptions.ActionNotFoundException
log4j.appender.<appender>.filter.1.acceptOnMatch=false
log4j.appender..filter.1=org.apache.log4j.filter.ExpressionFilter
log4j.appender..filter.1.expression=EXCEPTION~=play.exceptions.ActionNotFoundException
log4j.appender..filter.1.acceptOnMatch=false
这还允许您通过创建新的log4j appender并将上述规则中的
acceptOnMatch
属性反转为仅接受
ActionNotFound
异常的日志记录,将这些特定消息重定向到单独的目标