2014-11-05 1 views
1

Java 응용 프로그램을 실행할 때마다 다른 로그 파일을 만들고 싶습니다. 다음과 같은 구성이 있습니다. 나는 yyyyMMdd-HHmmss가 자바 애플리케이션을 시작할 때 rf-yyyyMMdd-HHmmss.log라는 이름의 로그 파일을 생성 할 것으로 예상했다. 그러나 그것은 작동하지 않습니다. 도움이 될 것입니다.jvm을 다시 시작할 때마다 log4j2가 다른 로그 파일을 만드는 방법

<?xml version="1.0" encoding="UTF-8"?> 
<configuration status="DEBUG"> 
    <appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> 
     </Console> 
     <RollingFile name="RF" filename="/home/sxd/rfjq/rf.log" immediateFlush="false" append="false" filePattern="/home/sxd/r\ q/rf-%d{yyyyMMdd-HHmmss}.log"> 
      <PatternLayout pattern="[%p] %m%n" /> 
      <Policies> 
       <OnStartupTriggeringPolicy /> 
      </Policies> 
     </RollingFile> 
    </appenders> 
    <loggers> 
     <Logger name="model.ModelRF" level="trace"> 
      <appender-ref ref="RF" /> 
     </Logger> 
     <root level="trace"> 
      <appender-ref ref="Console" /> 
     </root> 
    </loggers> 
</configuration> 

답변

0

버그를 발견했을 수 있습니다. Log4j2 Jira issue tracker에서이 문제를 제기하는 것이 좋습니다.


편집은 다음 OnStartupTriggeringPolicy뿐만 아니라 당신은 TimeBasedTriggeringPolicy를 지정해야합니다.

0

파일 이름은 filename="/home/sxd/rfjq/rf.log이므로 rf.log 파일이 생성됩니다. 파일 이름 패턴은 롤링 전략을 사용하는 경우에만 사용됩니다. 당신의 파일 이름 패턴에

filename="/home/sxd/rfjq/rf-%d{yyyyMMdd-HHmmss}.log" 

당신은뿐만 아니라 추가 할 수 있습니다 "내가 %" 는 날짜 패턴, 예와 filename 이름을 바꿉니다. 이 documentation 같이 "롤오버 전략"을 할 수 있습니다, 예 : 같은 파일이 이미의 말미에 .1을 추가 할 수있는 경우

는 응용 프로그램 시작에 <OnStartupTriggeringPolicy />과 함께
filePattern="/home/sxd/rfjq/rf-%d{yyyyMMdd-HHmmss}.%i" 

, 파일을 야기은, 패턴 rf-%d{yyyyMMdd-HHmmss}으로 만들었지 만합니다 파일. .1 접미어가있는 파일이 있으면 접미어 .2이 붙은 다른 파일을 만듭니다. 문서에서 자세한 내용을 볼 수 있습니다.

1

RollingFile에서 append="false"을 제거하십시오.