2014-11-27 1 views
1

당 log4j에 로그 파일을 생성하고 (이 자동으로 구성 s의 그래서 클래스 패스에) log4j2.xml 내 구성을 가지고, 나는 프로세스 당 별도의 로그 파일을 만들려고합니다.내가 log4j2을 사용하고 공정

여러 패키지와 여러 클래스가있는 프레임 워크가 있습니다.

Logger logger = LogManager.getLogger(getClass()); 

내가 지금은 3 개 개의 출력 파일 A.log, B.log 및 C.log를 얻기 위해 log4j에를 구성하고 포함해야하는 방법 세 가지 프로세스 A, B와 C가 있다고 가정하자 : 그들은 모두 같은 문장이 로깅 프레임 워크 클래스에서 만든 호출?

또한 디버그해야하는 경우 개별 패키지/클래스를 다른 로그 애 퍼더에 기록 할 수 있기를 원하므로 위에서 언급 한 getClass() 인수를 유지하는 것이 좋습니다.

모든 아이디어는 환영합니다!

+0

check http://stackoverflow.com/questions/11984414/how-to-create-process-based-log-file-using-log4j –

+0

실제로 그 대답을 보았지만 완전히 이해하지 못했습니다. 속성이 정의되지 않은 경우 어떻게됩니까? –

+0

프로세스에서 무엇을 의미합니까? 별도의 JVM 인스턴스를 의미합니까? –

답변

0

모든 프로세스에 고유 한 구성 파일을 제공하십시오. 이러한 구성에서 다른 경로를 지정하십시오.

는이 시스템 속성을 구성 파일의 전체 경로를 지정할 수 있습니다 -Dlog4j.configurationFile=path/to/log4j2.xml

0

당신은 프로세스를 생성시에 원하는 이름을 추가 할 수 있습니다, Java 가상 머신에 대한 인수를 추가. 예컨대 :

java -Dcustom.log.name=/tmp/logs/A.log ... ... 

그래서를, 당신은 그것을 사용할 수 있습니다

<File name="Application" fileName="${custom.log.name}"> 

가 [PDF] Apache Log4j 2 User's Guide에서 자세한 내용을 참조하십시오.