2013-07-01 1 views
1

내 응용 프로그램에서 다른 개체 인스턴스에 대해 별도의 로그를 만들어야합니다. 예를 들어 책으로 작업하는 경우 모든 책에 대해 별도의 로그 파일이 필요합니다. 그것은 log4j2.xml 파일과 함께 잘 작동하지만, 내가 메모리에 그러한 개체의 수백이있을 수 있습니다 그리고 난 그렇게 긴 구성 파일을 만들고 싶지 않아요. 코드에서 애 퍼처와 로거를 만들고 싶습니다. 나는 실용적인 코드 예제를 찾고 아무 것도 발견하지 못했다.java 코드에서 log4j2 appender를 만드는 방법은 무엇입니까?

RollingFileAppender.createAppender를 사용하려고했지만 로거에 첨부하는 방법을 찾지 못해이 함수 매개 변수에 대한 적절한 값을 얻지 못했습니다. 작업 코드 \ 구성에서 개체 속성별로 로그 파일을 만드는 방법에 대해 도움을주십시오.

아마도 log4j2.xml의 appender \ logger 이름에서 와일드 카드를 사용하거나 렌더러를 사용하여 수행 할 수 있습니까?

+0

중복 : http://stackoverflow.com/questions/8965946/configuring-log4j-loggers-programmatically – nif

+0

아니요. 그 질문에 그들은 log4j2를 다루지 않는다 – YuriR

답변

0

org.apache.logging.log4j.core.config.Configurator에 정적 메서드 #initialize(String contextName, ClassLoader loader, String configLocation) (소스 here 참조)을 사용할 수 있습니다. 는 (당신은 클래스 로더에 null을 전달할 수 있습니다.)

그래서 코드가 사소한 출시 중단 될이 클래스는 공개 API의 일부가 아닌 것을 알고 있어야합니다.

+0

그것은 10x 일을했다! – YuriR

1

"book"의 로그 파일을 분리하면 매우 특정한 appender를 작성하거나 log4j를 프로그래밍 방식으로 구성하지 않고 MDC를 살펴보아야합니다. 적절한 MDC 설치와

, MDC 내용의 파일 기반 로그 분할 솔직해야

(예 LogBack에서는, SiftingAppender이있다. 내가 같은 일을 유사한 제 3 자 펜더가 생각)
+0

안녕하세요 애드리안. 내 프로젝트에서 MDC를 사용하는 데 성공하지 못했고 나중에 다시 시도 할 것입니다. 어쨌든 고마워. – YuriR

+1

Log4j-2.0에 해당하는 것은 RoutingAppender입니다. 좋은 제안, Adrian! –