-Xss256k
-Djava.net.preferIPv4Stack=true
-Dfile.encoding=UTF-8
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+DisableExplicitGC
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintGCTimeStamps
-XX:+PrintClassHistogram
-XX:+PrintClassHistogramBeforeFullGC
-XX:+PrintTenuringDistribution
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintPromotionFailure
-XX:PrintFLSStatistics=1
-verbose:gc
-XX:GCLogFileSize=64m
-XX:NumberOfGCLogFiles=2
-XX:+UseGCLogFileRotation
-Xloggc:./logs/gc.log
위의 내용은 응용 프로그램에서 전달하는 JAVA_OPTS의 전체 목록입니다. 문제는 애플리케이션이 시작될 때까지 로그 디렉토리가 존재하지 않으면 gc.log 파일이 생성되지 않는 경우입니다. 하지만 응용 프로그램이 시작될 때까지 logs 디렉터리가 있는지 확인하면 gc.log가 항상 만들어집니다.처음으로 경로가없는 경우 Xloggc가 로그 파일을 만들지 않습니다.
GC가 발생하면 log4j 프레임 워크에서 logs 디렉토리를 만들기 전에 안전하게 Xloggc가 실패 할 것이라고 가정합니다. 수동으로 로그 디렉토리를 미리 작성하는 것 이외의 다른 해결책이 있습니까?