2013-10-31 6 views
1

로그 파일. EAR 파일은 App1, App2와 같은 두 개의 서로 다른 응용 프로그램 war 파일을 포함합니다.의 Log4j 문제 : 로그는 별도의 웹 응용 프로그램에 단일 로그 파일 대신 쓰기로 병합 내가 EAR 파일을 배포 할 Websphere7을 사용하고

내가 받는다는 - 귀 플러그와 같은 마른 전쟁을 사용하여 내 응용 프로그램 EAR 파일을 구축하고있다. 다른 전쟁

App1-1.0.0.war에 대한

. 
|-- META-INF 
| `-- application.xml 
|-- lib 
| -- jar1 
| -- jar2 
| -- jar3 
| -- log4j.jar 
|-- App1-1.0.0.war 
|  -- /WEB-INF/classes/App1-log4j.xml  |  
`-- App2-1.0.0.war 
|  -- /WEB-INF/classes/App2-log4j.xml 

의 Web.xml 구성 :의 Web.xml

<context-param> 
      <param-name>log4jExposeWebAppRoot</param-name> 
      <param-value>false</param-value> 
    </context-param> 

    <context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>/WEB-INF/classes/App1-log4j.xml</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 

App2-1.0.0.war :의 Web.xml

<context-param> 
       <param-name>log4jExposeWebAppRoot</param-name> 
       <param-value>false</param-value> 
     </context-param> 

     <context-param> 
      <param-name>log4jConfigLocation</param-name> 
      <param-value>/WEB-INF/classes/App2-log4j.xml</param-value> 
     </context-param> 

     <listener> 
      <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
     </listener> 

나는 로깅과 관련된 문제에 직면하고있다. 응용 프로그램 시작시 두 개의 다른 로그 파일 (app1.log 및 app2.log)이 올바르게 작성됩니다. 그러나 다른 응용 프로그램에 대한 로그는 단일 로그 파일로 이동합니다.

나는 무엇이 있습니까? 어떤 제안?

답변

0

마지막으로, 나는이 문제에 대한 해결책을 가지고있다. 답변을 얻으려면 아래 링크를 참조하십시오. How to implement your own RepositorySelector

Logging separation using RepositorySelector

    • 이 솔루션을 구현하는 동안, 나는 모든 클래스의 정적 로거 변수가 문제를 병합 로그를 일으키는 것을 관찰했다. Here은이 문제와 관련하여 좋은 설명입니다. 이것을 읽은 후에 모든 정적 로거를 클래스 수준 인스턴스 변수로 변환해야했습니다.

      개인 정적 최종 로거 LOGGER = Logger.getLogger (는 MyApp.Class) 발

      ;

      개인 최종 로거 LOGGER = Logger.getLogger (는 MyApp.Class)하는 단계;

      은 위의 변경을 수행 한 후, 로깅 프레임 워크는 나를 위해 잘 작동하기 시작했다. 이제는 모든 로그 파일에 웹 응용 프로그램 별 로그가 포함되어 있습니다.

      이 문제에 대한 자세한 분석을 얻을합니다. 이것을 post이라고 부를 수 있습니다.