레거시 로깅 클래스가 있습니다. 그것의 정적 로거 참조 (로거라는)와 정적 메서드를 잔뜩 있어요.FileAppenders on the fly
각 메소드는 String 입력을 받아서 System.out.println에 기록하고 logger가 null이 아니면 로거에 기록합니다.
로거를 초기화하는 생성자가 있습니다. 그러나이 생성자는 패키지 범위만을 가지고 있으며 어디에서나 호출되지 않는다고 확신합니다. 따라서 로거는 항상 null이고 클래스는 기본적으로 System.out.println 만 실행합니다.
각 스레드가 고유 한 FileAppender에 쓰는 다중 스레드 응용 프로그램에서 사용할 수 있도록이 값을 변경하려고합니다.
그리고 그것이 내가 붙어있는 곳입니다.
기본적으로,이 정적 클래스는 여러 log4j FileAppenders와 관련되어 있습니다. 각 FileAppender는 Thread에 의해 생성 될 수 있으며 파일 이름은 Thread에 알려진 고유 한 정보에서 파생 될 수 있습니다.
내가 할 수없는 방법은 마술처럼 Log4j를 사용하여 해당 스레드의 고유 FileAppender를이 레거시 로깅 클래스에 전달하는 것입니다.
아이디어가 있으십니까? 힌트? 제안?
마크