$ java -Xlog:help
-Xlog Usage: -Xlog[:[selections][:[output][:[decorators][:output-options]]]]
where 'selections' are combinations of tags and levels of the form tag1[+tag2...][*][=level][,...]
NOTE: Unless wildcard (*) is specified, only log messages tagged with exactly the tags specified will be matched.
hotspot logging option | description |
---|---|
-Xloggc:<filename> | 자세한 GC 이벤트 정보를 리디렉션하는 파일을 설정한다. -verbose:gc 출력과 유사하며, 각 이벤트 이전의 첫 GC 이벤트로부터 경과된 시간을 함께 기록한다. |
-XX:+PrintGC | 모든 GC에서 메시지 출력을 활성화한다. ❗️이 옵션은 JDK9에서 더 이상 사용되지 않는다. |
-XX:+PrintGCDetails | 모든 GC에서 보다 상세한 메시지 출력을 활성화한다. ❗️이 옵션은 JDK9에서 더 이상 사용되지 않는다. |
모든 GC에서 메시지 출력을 활성화 한다.
gc
는 모든 GC의 관련 정보를 기록하기 위한 주요 태그이다. gc
태그는 특정 정보를 기록할 다른 태그와 결합된다.
CG logging option | description |
---|---|
-Xlog:gc+region=trace | G1 GC가 할당 및 회수하는 region에 대한 정보를 출력 할 수 있다. |
-Xlog:gc+ergo*=trace | adaptive generation 크기 조정에 대한 정보를 출력 할 수 있다. |
-Xlog:safepoint | 마지막 일시 중지에서 보낸 시간에 대한 정보를 출력 할 수 있다. |
-Xlog:gc+task=trace | 각 GC worker thread의 작업에 대한 타임스탬프를 출력 할 수 있다. |
-Xlog:gc::uptime,tid | 데코레이터 uptime , tid 를 사용해 모든 GC에서 타임스탬프를 출력 할 수 있다. |
-Xlog:gc+stringdedup | 중복이 제거된 자세한 통계값을 출력 할 수 있다. |
-Xlog:gc+age=trace | Enables printing of tenuring age information. |
-Xlog:gc* | 모든 GC에서 상세한 메시지를 인쇄할 수 있다. |
-Xlog:gc:file=<filename> | 지정된 파일명에 gc 태그가 포함된 메시지를 기록한다. 예를 들어 -Xlog:gc:file=gc.txt 는 메시지를 gc.txt 파일에 기록한다. |
각 옵션은 분리해서 각각 작성해야하나, 새미콜론으로 이어서 작성 가능한 경우도 있다.
$ java -Xlog:gc*:file=gc.log:time [프로그램명]
- -Xlog:gc* : 상세 메시지 출력
- file=gc.log :
gc.log
파일에 로그 저장- time : 로그 찍힌 시간 표시
$ /usr/libexec/java_home -v 11.0.10 --exec java -Xmx50m -Xms50m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xlog:gc:file=/Users/kakao/Documents/workspace/g1gc/cglog/211002.log -Xlog:gc* -Xlog:gc+ergo+cset=trace -jar target/g1gc-0.0.1-SNAPSHOT.jar
--
[0.930s][trace][gc,ergo,cset ] GC(3) Start choosing CSet. pending cards: 1057 predicted base time: 4.82ms remaining time: 195.18ms target pause time: 200.00ms
[0.931s][trace][gc,ergo,cset ] GC(3) Add young regions to CSet. eden: 5 regions, survivors: 3 regions, predicted young region time: 22.65ms, target pause time: 200.00ms
[0.931s][debug][gc,ergo,cset ] GC(3) Finish choosing CSet. old: 0 regions, predicted old region time: 0.00ms, time remaining: 172.53