2011-11-08 2 views
0

나는보고 서비스로서 간단한 Spring MVC 애플리케이션을 개발 해왔다. 로컬로, 나는 mvn tomcat:run을 사용하여 maven-tomcat-plugin으로 애플리케이션을 실행 해왔다. 이것은 정확히 예상대로 작동합니다. 그러나, 나는 지금은, Tomcat이 그것을 통지는, 그것을 배포하는 webapps 디렉토리에 war 파일을로드 톰캣 6를 실행하는 서버에이 서비스를 배포하기 위해 노력하고있어, 다음 불평 : 당연히,Tomcat에서 Spring MVC 애플리케이션을위한 Log4j 설정

log4j:WARN No appenders could be found for logger 
(org.springframework.web.filter.CharacterEncodingFilter). 

log4j:WARN Please initialize the log4j system properly. 

을 그리고, 서비스 로깅이 작동하지 않습니다.

위의 오류 메시지는 분명하지 않으며 누구에게 도움이 될지 궁금합니다. 후손을 위해

, 나는 (/src/main/resources에 살고있는) 아주 간단한 log4j.properties 파일이 :

log4j.rootLogger=WARN, console 

log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern= %d{HH:mm:ss,SSS} [%t] %-5p %x %C{1} : %m%n 

log4j.logger.com.rtr=DEBUG 

나의 현재 가설은 바람둥이 상자에서 모든 속성 번들을보고,하지만되지 않을 수 있다는 것입니다 확실하지 않아. 번들을 WEB-INF/classes으로 핫 카피하고 적절한 결과를 얻음으로써이 가설을 확인할 수있었습니다. classpath에있는 정확한 위치는 무엇입니까? 이상한 위치가 아닙니까?

모든 안내에 감사드립니다.

+0

속성 파일이 war 파일의'/ WEB-INF/classes'에 있는지 확인 했습니까? –

답변

2

maven 라이프 사이클의 compile 단계에서 Maven은 리소스 파일을 /src/main/resources에서 /WEB-INF/classes으로 복사합니다. mvn war:war 명령을 사용하면 이러한 리소스가 복사되지 않으므로 응용 프로그램에서 리소스를 사용할 수 있으려면 mvn compile war:war을 수행해야합니다.

1

log4j.properties 파일을 자동으로 가져 오려면 클래스 경로에 있어야한다고 생각합니다. 나는 보통 Tomcat의 Lib 폴더 나 전쟁의 lib 폴더에 넣는다.

+0

'src/main/webapp/WEB-INF/lib'에 넣으려고했으나 작동하지 않는 것 같아서이 경로를 따라 가며 (나는 약간의 냄새가 난다.) 나는 번들을 핫 복사했다. WEB-INF/classes /'dir에 복사합니다. 내가 이것을했을 때, 톰캣은 그 묶음을 잘 찾았다. 기묘한? – idbentley

+0

src 트리의 디렉토리가 WAR 파일의 클래스 경로에 없습니다. – DwB

+0

@DwB Maven 프로젝트입니다. '/ src/main/resources'에있는 리소스는 class 디렉토리에 복사됩니다. –