log4j 여러 프로세스가 한 파일에 Write할 때
- 작성자 :
- 박*호
- 작성일 :
- 2012-03-16 10:18:09
- 조회수 :
- 2,543
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
Weblogic으로 Server를 2개 띄어 아래 해당하는 log4j를 읽어 로그를 생성합니다. 두 Server 모두 같은 소스를 Deploy합니다. 처음에는 정상적으로 로그를 생성하다가 날짜가 다음날이 되면 로그가 꼬여 로그 기록이 정상적으로 되지 않습니다.
ex)2012년3월16일 00:00시 이 후
상기 시간 전에 정상적으로 access.log 파일에 로그를 생성하다가 상기 시간 이 후 문제가 발생합니다. 1번 서버는 access.log파일에 정상적으로 로그를 생성하나 2번 서버가 access.log.20120315파일에 로그를 생성합니다. 따라서 정상적인 로그 기록이 되지 않고있습니다.
혹시 제가 설정한 log4j 설정에 문제가 있는지 확인부탁드려요.
log4j.xml
-생략-
<appender name="accessFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="${egov.home}/logs/access.log"/>
<param name="ImmediateFlush" value="true" />
<param name="Append" value="true"/>
<param name="DatePattern" value="'.'yyyyMMdd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%n%d{HH:mm:ss[SSS]} %m"/>
</layout>
</appender>
-생략-
<logger name="egovframework.project.framework.filter.AccessLogFilter" additivity="false">
<level value="INFO"/>
<appender-ref ref="accessFile"/>
</logger>
-생략-
ex)2012년3월16일 00:00시 이 후
상기 시간 전에 정상적으로 access.log 파일에 로그를 생성하다가 상기 시간 이 후 문제가 발생합니다. 1번 서버는 access.log파일에 정상적으로 로그를 생성하나 2번 서버가 access.log.20120315파일에 로그를 생성합니다. 따라서 정상적인 로그 기록이 되지 않고있습니다.
혹시 제가 설정한 log4j 설정에 문제가 있는지 확인부탁드려요.
log4j.xml
-생략-
<appender name="accessFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="${egov.home}/logs/access.log"/>
<param name="ImmediateFlush" value="true" />
<param name="Append" value="true"/>
<param name="DatePattern" value="'.'yyyyMMdd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%n%d{HH:mm:ss[SSS]} %m"/>
</layout>
</appender>
-생략-
<logger name="egovframework.project.framework.filter.AccessLogFilter" additivity="false">
<level value="INFO"/>
<appender-ref ref="accessFile"/>
</logger>
-생략-
A
안녕하세요.. 박준호님..
여러 VM에서 같은 파일을 사용하실 때에 발생되는 문제 같습니다.
(참조 : http://blog.naver.com/PostView.nhn?blogId=anabaral&logNo=130099537071)
이런 경우는 ... was 서버 기동 시에.. -Dserver.name=server1 과 같이.. system property 값을 지정하시고.. 이 부분을 파일명의 일부로 활용해 보시면 되실 것 같습니다.
ex: <param name="file" value="${egov.home}/logs/${server.name}_access.log"/>
그럼.. 즐거운 하루되십시오.
감사합니다.
여러 VM에서 같은 파일을 사용하실 때에 발생되는 문제 같습니다.
(참조 : http://blog.naver.com/PostView.nhn?blogId=anabaral&logNo=130099537071)
이런 경우는 ... was 서버 기동 시에.. -Dserver.name=server1 과 같이.. system property 값을 지정하시고.. 이 부분을 파일명의 일부로 활용해 보시면 되실 것 같습니다.
ex: <param name="file" value="${egov.home}/logs/${server.name}_access.log"/>
그럼.. 즐거운 하루되십시오.
감사합니다.