2015-01-29 1 views
0

log4j 로그 파일의 위치는 어떻게 얻을 수 있습니까? 나는 이것을 시도했다 : Where can i programatically find where the log4j log files are stored?Log4j2 로그 파일 위치를 가져와 날짜가있는 디렉토리에 기록하십시오.

그러나 최신 버전의 log4j에서는 작동하지 않는다.

시스템 날짜가 포함 된 파일을 만들었지 만 경로를 검색 할 때 타임 스탬프가 변경되었을 수 있습니다. 다음과 같이

<File name="Technical" 
     fileName="app/${date:yyyy-MM-dd HHmmss}/logTechnical.log"> 
    <PatternLayout pattern="%d %p %c{1.} [%t] %m%n" /> 
</File> 

당신은 디렉토리를 얻을 수 있습니다 : 다음과 같이 당신이 어 펜더를 구성한 경우

답변

3

import java.io.File; 
import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 
import org.apache.logging.log4j.core.LoggerContext; 
import org.apache.logging.log4j.core.appender.FileAppender; 
import org.apache.logging.log4j.core.config.Configuration; 

... 

LoggerContext ctx = (LoggerContext) LogManager.getContext(false); 
Configuration config = ctx.getConfiguration(); 
FileAppender techical = (FileAppender) config.getAppender("Technical"); 
File dir = new File(techical.getFileName().replaceFirst("[^\\/]+$", "")); 
+0

와우, 나는 이런 식으로 뭔가를 시도, 그리고 내가 할 수 없었다 말하고 있었다 Apender를 FileApender에 캐스트합니다. 폴 감사합니다. – CodyK