2010-01-08 6 views
0

Solaris에서 Webapp를 실행하기 위해 Jboss 4.0.2를 사용하고 있습니다.log4j 콘솔 appender 및 로그 파일 크기

JBoss는 기본 log4j.xml 파일을 사용하도록 구성되었으며 여기에는 ConsoleAppender가 있습니다. jboss java 프로세스의 stdout을 파일로 리다이렉션하고있다.

이 파일을 정리하려고하면 재미있는 일이 발생합니다. jboss.out.

여기부터 시작하겠습니다.

$ ls -alhrt jboss.out 
-rw-r--r-- 1 ipunity ipunity  458M Jan 8 07:22 jboss.out 

그런 다음이 파일을 정리합니다. Jboss가 아직 실행 중입니다.

내 웹 응용 프로그램에서 링크를 클릭하면 로깅이 시작되지만 전체 파일 종류가 다시 나타납니다.

$ ls -alhrt jboss.out 
-rw-r--r-- 1 ipunity ipunity  458M Jan 8 07:25 jboss.out 

무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까?

ConsoleAppender가 데이터를 버퍼링합니까? 나는 458MB를 저장할 수있는 충분한 메모리가 없으며 디스크 스왑은 거의 사용되지 않는다. 나는 어떤 거친 임시 파일도 보지 않는다.

답변

2

이것은 JBoss가 파일 포인터를 사용하여 + [파일의 이전 크기가 무엇이든간에]로 설정된 쓰기를 발행 할 때 OS에 의해 생성 된 스파 스 파일 일 가능성이 높습니다.

새 파일에서 실제로 사용되는 디스크 공간을 확인하십시오. 대부분의 유닉스에서는 du -k jboss.out이 작동합니다. 파일이 희박한 경우 ls으로 표시된 크기보다 훨씬 작은 내용이 표시되어야합니다.

일반적으로 로그 파일이 기록되는 동안 제거하는 것은 까다 롭습니다. stdout을 캡처 할 때이 문제를 피하기 위해 stdout을 cronolog 또는 rotatelogs과 같은 프로그램 대신 파이프로 연결하는 경향이 있습니다.