2017-04-24 9 views
0

동일한 Weblogic 도메인에 세 개의 프로젝트를 배포하십시오. 그러나 log4j는 모든 로그를 하나의 파일에 씁니다. 그러나 로그를 세 개의 파일에 쓰고 싶습니다. 각 프로젝트마다 자체 로그 파일이 있습니다. log4j를 설정하는 방법. 나는 당신을 믿고있어같은 Weblogic 도메인에 세 개의 프로젝트를 배포하십시오. 그러나 log4j는 모든 로그를 하나의 파일에 작성합니다.

답변

0

당신의 log4j 속성에서 이런 일이 : 당신이 가정, 각 프로젝트의 다음

log4j.appender.file.File=${mylog} 

:

log4j.appender.file.File=C:\\logging.log 

은 당신이 할 수있는 것은과 그 라인을 교체입니다

System.setProperty("mylog", "specific_filepath_for_project"); 
0

FO를 : 각 프로젝트에 대해 구성된 log4j.properties, 당신은 할 수 있어야 예를 들어 두 패키지의 로그 파일은 다음과 같습니다.

com.abhi.packageOne; -> packageOneFile.log 
com.abhi.packageTwo; -> packageTwoFile.log 

rootLogger를 파일 또는 콘솔로 추가하십시오. 당신은 당신이 당신의 두 패키지 당신은 따라 가산을 설정해야

log4j.appender.MAIN_LOG=org.apache.log4j.RollingFileAppender 
log4j.appender.MAIN_LOG.File=/path/main.log 
log4j.appender.MAIN_LOG.layout=org.apache.log4j.PatternLayout 

log4j.appender.PACKAGE_ONE=org.apache.log4j.RollingFileAppender 
log4j.appender.PACKAGE_ONE.File=/path/packageOneFile.log 
log4j.appender.PACKAGE_ONE.layout=org.apache.log4j.PatternLayout 

log4j.appender.PACKAGE_TWO=org.apache.log4j.RollingFileAppender 
log4j.appender.PACKAGE_TWO.File=/path/packageTwoFile.log 
log4j.appender.PACKAGE_TWO.layout=org.apache.log4j.PatternLayout 

을위한 두 개의 새로운 펜더를 만들 필요가
log4j.rootLogger=Debug, file 

귀하의 요구 사항에 따라 모든 로그 수준 즉 추적, 정보, errror 등을 유지할 수 있습니다.

중독성이란 무엇입니까?

로그의 중복을 피하기 위해 Log4j 가산을 사용할 수 있습니다. Log4j 로거의 additivity 속성을 false로 설정하면 해당 로거로 들어오는 로그 메시지가 상위 로거로 전파되지 않습니다. 따라서 새로운 Log4j 구성 파일은 다음과 같습니다.

log4j.additivity.com.abhi.packageOne=false 
log4j.additivity.com.abhi.packageTwo=false 

log4j.logger.com.abhi.packageOne=DEBUG, PACKAGE_ONE 
log4j.logger.com.abhi.packageTwo=DEBUG, PACKAGE_TWO 

log4j.rootLogger=DEBUG, MAIN_LOG 

여기서 MAIN_LOG는 일반 로그 파일입니다. MAIN_LOG에서 PACKAGE_ONE 및 PACKAGE_TWO의 로그를 인쇄하려면 다음 행을 포함하십시오.

log4j.rootLogger=DEBUG, MAIN_LOG , PACKAGE_ONE , PACKAGE_TWO