log4j 스레드별 파일 생성방법
글쓴이: sysmoon / 작성시간: 화, 2011/10/04 - 6:08오후
안녕하세요
log4j을 도입하여 자바 어플리케이션을 개발중입니다.
클래스별, 패키지별로 로그파일을 생성하는건 적용하여 테스트 완료했지만,
각 스레드에서 생성한 로그들이 파일 하나에 모두 쓰이다 보니 스레드별 로그 구분이 힘듭니다.
스레드별로 부여한 SessionID를 파일이름으로 설정하여 각 스레드에 대해 로그파일 생성이 가능한지 궁금합니다.
log4j.properties 파일에서 설정하여 스레드별 파일 생성이 가능한가요?
구글에서 검색하면 어떤 분은 별도의 appender 클래스 파일을 개발해서 사용하고 있더군요
아시는 분 부탁드립니다.
Forums:
테스트 결과 log4j.properties 파일외에
테스트 결과 log4j.properties 파일외에 Thread 클래스 파일 생성자에서 다음과 같이 구현했더니 스레드에 부여한 ID별로 로그 파일이
정상적으로 생성됩니다. 참고하세요
m_logger = Logger.getLogger("SessionThread-" + strSessionID);
String strLogFileName = "./log/SessionThread/" + strSessionID + ".log";
Properties prop = new Properties();
prop.setProperty("log4j.logger.SessionThread-" + strSessionID, "DEBUG, SessionThread");
prop.setProperty("log4j.appender.SessionThread", "org.apache.log4j.DailyRollingFileAppender");
prop.setProperty("log4j.appender.SessionThread.File", strLogFileName);
prop.setProperty("log4j.appender.SessionThread.Append", "true");
prop.setProperty("log4j.appender.SessionThread.layout", "org.apache.log4j.PatternLayout");
prop.setProperty("log4j.appender.SessionThread.layout.ConversionPattern", "[%d{HH:mm:ss}][%-5p](%F:%M:%L)-%m%n");
prop.setProperty("log4j.appender.SessionThread.Threshold", "DEBUG");
PropertyConfigurator.configure(prop);
AirPlug
댓글 달기