2013-01-24 2 views
1

Config.groovy 나는이 log4j 구성 :Grails는 단지 내 로그에

난 단지 MYCONTROLLER 로그를 얻기를 위해 구성하는 방법
log4j = { 

    appenders { 
     file name:'connection', file: '/tmp/connection.log' 
    } 

    info "grails.app.controllers.myController" 

    root { 
     info 'connection' 
    } 

?

답변

2

난 단지 MYCONTROLLER 로그를 얻기를 위해 구성하는 방법 자세한 내용은

는 Grails의 문서에서 로깅 섹션을 참조하십시오?

는 현재 루트 로거에 "정보"수준 (이 로거 어쨌든 루트에서 정보의 수준을 상속하는 것처럼) 따라서

info "grails.app.controllers.myController" 

실제로 아무것도하지 않는 설정된다. 당신이 myController에서 모두 그렇다 로깅을 사용하지 않을 경우에 당신은 오히려 정보를 원하시면 다음 "off"로 루트 로거를 설정해야

root { 
    off 'connection' 
} 

당신이 /tmp/connection.logmyController 출력을 넣고 다른 로그 메시지를 마칠 대신하는 경우 정상적으로 표준 출력에 당신은

root { 
    info 'stdout' 
} 

info connection:'grails.app.controllers.myController', additivity:false 

가 (또는 root { error "stdout" } 말을하는 것과 동일합니다 기본 동작을 얻기 위해 완전히 root 블록을 생략)가 필요합니다. additivity:false은 myController 로거에 직접 첨부 된 appender ("연결"appender)에만 로깅하도록 지시합니다. 이 메시지가 없으면 부모로부터 상속 된 appender, 즉 기본 "stdout"appender로 이동합니다.

+1

감사합니다! 그것은 작동합니다. root {off 'connection'}은 (는) 매우 중요하지만이 문서에는 없습니다 : http://grails.org/doc/latest/guide/single.html#logging – Valeriane

1

시도 뭔가 :

log4j = { 

    def loggerPattern = '%d %-5p >> %m%n' 

    def errorClasses = [] // add more classes if needed 
    def infoClasses = ['grails.app.controllers.myController'] // add more classes if needed 
    def debugClasses = [] // add more classes if needed 

    appenders { 
     console name:'stdout', layout:pattern(conversionPattern: loggerPattern) 
     rollingFile name: "file", maxFileSize: 1024, file: "./tmp/logs/logger.log", layout:pattern(conversionPattern: loggerPattern) 
    } 

    error stdout: errorClasses, file: errorClasses 
    info stdout: infoClasses, file: infoClasses 
    debug stdout: debugClasses, file: debugClasses 
}