WebLogic에서 JBoss EAP 7로 여러 기존 애플리케이션을 포팅했습니다. 포팅되는 구성 요소 중 일부는 EJB입니다. 다른 EJB는 이러한 EJB를 호출하는 서블릿 애플리케이션입니다. 이러한 EJB는 ejb-jar에 배포됩니다. 나는이 모든 것을 큰 EAR 파일로 감쌀 수 있다는 것을 알고 있지만 그렇게하고 싶지는 않습니다. 서블릿과 EJB jar는 개별적으로 배포 가능한 구성 요소 여야합니다.JBoss EAP 7의 EJB jar에 log4j2 로깅 코드
로깅 설정이 있습니다. 우리는 log4j2를 사용하고 있으며 JBoss 로깅 설정과 독립적으로 유지하려고합니다. 적절한 종속성을 가진 모든 log4j2 jar를 포함하는 JBoss 모듈을 만들었고 로깅이 작동합니다. 서블릿이 실행 및 기록되고 EJB를 호출하며 작동합니다.
유일한 문제점은 EJB 로깅을 구성하는 방법입니다. 서블릿과 같은 웹 애플리케이션에서는 web.xml에 log4j 로깅 구성 파일을 지정하기 만하면됩니다. ejb 항아리의 아날로그는 무엇입니까? 나는 방법을 생각할 수 없었다.
나는 다음을 시도했다 : 로거/appender를 EJB 패키지의 서블릿 app 구성에 추가하고 새 파일을 지정한다. 작동하지 않습니다. 새로운 로그 파일은 생성되지만 아무것도 로그 파일에 기록되지 않습니다. 출력이 있어야하지만 EJB가 실행될 때 LogManager가 서블릿에 지정된 구성을 사용하지 않고있는 것은 분명합니다.
JBoss EAP7의 EJB jar에 배포 된 EJB에서 log4j2 구성을 지정하는 올바른 방법은 무엇입니까?
'JndiContextSelector'가 작동할까요? https://logging.apache.org/log4j/2.0/log4j-core/apidocs/org/apache/logging/log4j/core/selector/JndiContextSelector.html 그리고 이것을 납치하지 말고 어떻게해야하는지에 대한 의견이 있으면 WildFly와 함께 log4j2를 사용 하시길 바랍니다. https://issues.jboss.org/browse/WFCORE-482 :) –
Thanks, James. 나는 이것에 대해 생각하고 있었다. 그것은 효과가있을 것 같았지만 첫 번째 시도는 실패했습니다. 의심의 여지가 뭔가 잘못된 일을했지만 적어도 내가 옳은 길을 가고 있었다는 것을 아는 것이 좋다.아마 당신은 http://mail-archives.apache.org/mod_mbox/logging-log4j-user/201611.mbox/browser를보고 내가 잘못한 것을 말해 줄 수 있습니다. –
I * think * 당신은 단지'Log4jContextSelector' 시스템 속성을 설정할 수 있습니다. https://logging.apache.org/log4j/2.x/manual/configuration.html. 나는 이것을 시험하지 않았다. –