2013-08-23 3 views
0

, 나는설정 경로 내 경우

에서 경로에서 로그 파일을 생성해야

<appender name="FILE" class="org.apache.log4j.RollingFileAppender"> 
<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler" /> 
<param name="File" value="${app.root}" /> 
<param name="Append" value="true" /> 
<param name="MaxFileSize" value="20000KB" /> 
<param name="MaxBackupIndex" value="400" /> 
<layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%-5p: %d{dd MMM yyyy HH:mm:ss.SSS} %-5l - %m%n%n" /> 
</layout> 

처럼의 log4j.xml을 구성한 String loggerpath = request.getSession(). getServletContext(). getRealPath ("");

내가

System.setProperty("app.root", loggerpath+"\\oeslogger.log"); 

를 사용하고 있지만,이 일을하지 않습니다. 해결책을 제안하십시오.

답변

0

구성 가능한 로깅의 요점은 설정 파일이 프로그램보다 쉽게 ​​변경된다는 것입니다. 그래서 당신이 달성하려는 것을 보지 못했습니다. log4j.xml 파일을 "oeslogger.log"로 설정할 수 없습니까?

어쨌든 시스템 등록 정보 app.root를 설정할 때 로거가 이미 구성되어있는 것으로 보입니다. 이것이 변화가 일어나지 않는 이유입니다. 즉석에서 로깅 속성을 변경하려면 대신 Log4j의 API를 사용해야합니다. 따라서 다음과 같이 시도해보십시오.

Logger ll = Logger.getLogger("<NAME OF LOGGER>"); 
FileAppender fa = (FileAppender) ll.getAppender("FILE"); 
fa.setFile(loggerpath + "\\oeslogger.log"); 
fa.activateOptions(); 

코드 초반.