4

Grails では、コントローラーで発生する特定の例外のログを記録するのをやめたいと考えています。

カスタム警告ページをレンダリングするために、urlmapping でこの例外を管理しました

es 私の URL マッピング

"500"(controller:'error', action:'excOne', exception: MyExceptionOne)       
"500"(controller:'error', action:'excTwo', exception: MyExceptionTwo)

しかし、この例外は引き続き log4j によってログに記録されました。それらをログから除外するにはどうすればよいですか?

これは私のlog4j設定です:

log4j = {
      error  'org.codehaus.groovy.grails.web.servlet',  //  controllers
        'org.codehaus.groovy.grails.web.pages', //  GSP
        'org.codehaus.groovy.grails.web.sitemesh', //  layouts
        'org.codehaus.groovy.grails.commons', // core / classloading
        'org.codehaus.groovy.grails.plugins', // plugins
        'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
        'org.springframework',
        'org.hibernate',
        'net.sf.ehcache.hibernate',
        'grails.app.services.org.grails.plugin.resource',
        'grails.app.taglib.org.grails.plugin.resource',
        'grails.app.resourceMappers.org.grails.plugin.resource',
        'grails.app.services.NavigationService'


    warn   'org.mortbay.log'    
    debug  "com.myproject.*"

    debug  "grails.app"
    debug  "com.myproject.*"

appenders {
console name:'stdout', layout:pattern(conversionPattern: '[%r] %c{2} %m%n')
}

root {
error 'stdout'
warn 'stdout'
additivity = true
} 

}
4

2 に答える 2

0

ログ内の例外に関する言及をすべて削除することはできませんでしたが、スタック トレースがログを乱雑にしないようにしました。

希望どおりに動作する StackTracePrinter 実装を作成します。

package com.myStuff
import org.codehaus.groovy.grails.exceptions.DefaultStackTracePrinter

class MyStackTracePrinter extends DefaultStackTracePrinter {

  String prettyPrint(Throwable throwable) {
    if (throwable instanceof MyException) return "<stack trace suppressed>"
    return super.prettyPrint(throwable)
  }
}

次に、でConfig.groovy

grails.logging.stackTracePrinterClass = 'com.myStuff.MyStackTracePrinter'
于 2015-06-02T15:55:08.773 に答える
-1

試す:

off "your.class.file"

コード行の後:

debug  "com.myproject.*"

クラスの正しいパスを提供していることを確認してください。これが機能しない場合は、クラス ファイルのパスを教えてください。

于 2013-03-25T07:44:36.553 に答える