2010-12-15 3 views
0

log4j.xml을 사용하여 org.hibernate.type (최대 절전 모드 준비 문에서 사용 된 바인드 변수 로깅)을 구성 할 수는 없지만 log4j DSL을 사용할 수 있음 Config.groovy.TRACE에서 grails/gorm/org.hibernate.type이 아무것도 출력하지 않는다

각각 다른 WAR를 작성하지 않고 다른 환경에 대한 로깅을 구성해야하므로 가능한 경우 DSL보다는 log4j.xml을 사용해야합니다.

 
<logger name="org.hibernate.type"> 
    <level value="TRACE"/> 
    <appender-ref ref="console"/> 
</logger> 

을 넣어했지만 바인딩이 인쇄되지 않습니다. 이전에는 DSL에있었습니다.
 
log4j = { 
...

trace 'org.hibernate.type' }

아주 이상한, 다른 하이버네이션 로깅은 log4j.xml을 통해 제어 할 수 있습니다.

의견을 보내 주시면 감사하겠습니다.

제쳐두고, 구성을 포함한 컴파일 된 객체가 유연하게 관리하는 가장 좋은 방법으로 권장되는 Config.groovy 내의 DSL을 사용하고 있습니다. 구성이 포함 된 컴파일 된 객체는 놀라운 것처럼 보이지만 grails에는 새로운 것입니다.

답변

0

파일 구성 할 수 있습니다 당신이 각 서버에 대해 별도의 설정 파일을 사용하는 것이 좋습니다. vim ~tomcat/customConfig.groovy 같은 (뭔가 리눅스 & 사용하는 경우 웹 서버의 홈 폴더에 customConfig.groovy을 만든 다음

grails.config.locations = [ "file:${userHome}/customConfig.groovy" ] 

: 서버의 홈 폴더에서 사용자 지정 설정 파일을하려면 Config.groovy 파일에 다음과 같은 것을 넣어 Tomcat) 원하는 속성을 무시하십시오. 유일한 문제는 로깅 DSL의 경우 여기에 전체 로깅 블록을 제공해야한다는 것입니다 (다른 구성 설정과 마찬가지로 선택한 속성을 무시할 수는 없습니다).

이렇게하면 구성이 변경되고 다른 서버에 대해 별도의 빌드가 없어도 웹 응용 프로그램을 다시 시작하면됩니다.

0

당신이 Config.groovy 파일의 환경에 따라 로깅

// set per-environment 
environments { 
    development { 
     log4j = { 
      ... 
     } 
    } 
    test { 
     log4j = { 
      ... 
     } 
    } 
} 
+0

감사합니다. 이것이 우리가해야 할 일일 수 있습니다. 그러나 재 컴파일없이 로깅 수준을 변경할 수는 없으며 상당히 제한적입니다. 서버를 일시적으로 다시 시작하거나 메시지 추적의 로그 수준, 큐 추적, SQL 등을 복원 한 다음 수준을 다시 설정하고 복원하는 것이 유용 할 수 있습니다. – Alex

관련 문제