2014-09-04 2 views
1

Tomcat 서버에있는 응용 프로그램을 작성하고 있습니다. 응용 프로그램은 우리가 제공하는 클라이언트마다 여러 번 인스턴스화됩니다.인스턴스 당 하나의 파일에 쓰는 Log4j

Log4j를 응용 프로그램에 도입하려고합니다. 클라이언트 파일이 작성되고 로그 출력이 작성됩니다.

문제점은 새로운 인스턴스가 생성 될 때마다 다른 클라이언트의 로그 출력이 새 클라이언트 로그 파일에 기록된다는 점입니다. 나는 응용 프로그램의 이전 인스턴스는 자신의 파일에 로그인하고 다른 클라이언트에 이상 유출되지 않습니다 있는지 확인하려면 어떻게

private static final Logger logger = Logger.getLogger(name_of_class.class); 

: 응용 프로그램 내에서

는이 같은 각 로그에 대한 로거를 인스턴스화 ?

+0

클라이언트는 브라우저입니다. 한 번 응용 프로그램을 브라우저 용으로 인스턴스화 하시겠습니까 ?? –

+0

죄송합니다. 명확해야합니다. 클라이언트는 응용 프로그램을 사용하는 실제 클라이언트입니다. 예. company1, company2 etc – mogoli

+0

'Log' 파일이 하나 뿐이므로 응용 프로그램이이 파일에 쓰고 있습니다. 각 클라이언트에 대해 별도의 로그 파일을 갖는 그러한 솔루션은 없습니다 (구현할 수는 있지만 로그 파일의 용도는 아닙니다). – pms

답변

1

그래서 저는 그것을 해결했습니다.

문제는 로거 이름에 거짓말을했습니다. 내가 한 것은 로거 선언을 다른 클래스에서 호출하는 메서드로 옮기는 것이 었습니다.

메소드가 호출

, 그것은 클라이언트 즉

Logger.getLogger ("CLIENTNAME")의 이름을 따서 로거를 인스턴스화;

이렇게하면 클라이언트 로거가 호출 될 때 클래스가 인스턴스화 되더라도 출력은 항상 클라이언트 파일에만 기록됩니다.

생각 프로세스를 도와 주셔서 감사합니다.

관련 문제