JBoss EAP에 grails 응용 프로그램을 배포하려고하는데 문제는 응용 프로그램의 출력이 stdout 및 stderr를 제외하고 기록되지 않는 것입니다. jboss가 내부 로깅 시스템을 사용하고 grails가 log4j를 사용하기 때문에 로깅이이 경우 어떻게 작동하는지 이해하지 못합니다. 기본값은Grails 및 JBoss AS/EAP 로깅이 인쇄되지 않습니다.
<subsystem xmlns="urn:jboss:domain:logging:1.1">
<console-handler name="CONSOLE">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
</console-handler>
<periodic-rotating-file-handler name="FILE">
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="server.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
<logger category="com.arjuna">
<level name="WARN"/>
</logger>
<logger category="org.apache.tomcat.util.modeler">
<level name="WARN"/>
</logger>
<logger category="sun.rmi">
<level name="WARN"/>
</logger>
<logger category="jacorb">
<level name="WARN"/>
</logger>
<logger category="jacorb.config">
<level name="ERROR"/>
</logger>
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>
</subsystem>
입니다 :
이 standalone.xml 내 로깅 구성이다.
이 log4j 구성 내 Config.groovy 파일에 있습니다
// log4j configuration
log4j = {
// Example of changing the log pattern for the default console appender:
//
//appenders {
// console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
//}
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.web.mapping.filter', // URL mapping
'org.codehaus.groovy.grails.web.mapping', // URL mapping
'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'
all additivity: false, console: [
'grails.app.controllers.com.redhat.theses',
'grails.app.domain.your.com.redhat.theses',
'grails.app.services.com.redhat.theses',
'grails.app.taglib.com.redhat.theses',
'grails.app.conf.com.redhat.theses',
'grails.app.filters.com.redhat.theses'
]
}
난 정말이 로깅 물건을 이해하지 못하고, 그것은되는 혼란, 내가 원하는 모든 우선, 적어도 모든 오류를 기록하는 것입니다. 그러한 중요한 기능이 기본적으로 작동한다고 생각할 수 있습니다.
나는 JBoss의 시작이 속성을 설정하면 : 내가 원하는대로
./standalone.sh -Dorg.jboss.as.logging.per-deployment=false
정확히 작동합니다. 하지만 괜찮은거야? 로깅과 같은 중요한 기능을 사용하려면이 속성을 설정해야하는 이유는 무엇입니까?
약간의 오만함이 들리면 유감스럽게 생각합니다. 나는 이것을 몇 시간 동안 알아 내려고 노력해 왔으며, 처음에는 여전히 내가 있었던 곳입니다.
JBoss EAP 버전이 도움이 될 것입니다. 또한 관련 답변 (http://stackoverflow.com/questions/12670415/log4j-doesnt-log-anything-under-jboss-6-eap)을 참조하십시오. –
JBoss EAP 6.0.0. 지금 당장 언급하지 않으셔서 죄송합니다. 나는 질문을 빨리 할 것이다, 고마워한다! – VaclavDedik