UL Viewer is log parser for JEP 158: Unified JVM Logging and JEP 271: Unified GC Logging.
$ cd ulviewer-<version>-Linux-amd64/bin
$ ./ulviewer
- Run
ulviewer.bat
- If your machine has WSL (Windows Subsystem for Linux), you can run
ulviewer
directly.ulviewer
is shell script.
You can open several logs from [File] -> [Open Log] menu.
After selecting logs, Log parser wizard is shown.
You can choose log decorations for parsing. [Field value] column shows the value of decoration. You can choose decoration format on [Decoration] column. [Decoration] is ChoiceBox, so you can choose Unified JVM Logging official log decorations.
After that, you can push [OK] button.
Your logs are shown in main window.
- You can set filters through log decoration. You can choose decoration from ComboBox, and check on CheckBox.
- If you want to search logs with some keywords, you can search it through search window.
- Copy selected log entry when you press CTRL+C.
If you want to draw chart(s), you have to add tag(s) which indicates time to -Xlog
option as below:
time
(t
)utctime
(utc
)uptime
(u
)timemillis
(tm
)uptimemillis
(um
)timenanos
(tn
)uptimenanos
(un
)
In addition, you have to add tags
(tg
) to log tags.
- [Chart] -> [Memory] -> [Java heap]
- You need to open
info
level log (gc=info
). - You can check Java heap memory. This chart shows all STW collection (all major/minor GCs)
- You can also check specific GC events when you click the plot on the chart.
- [Chart] -> [Memory] -> [Pause time]
- You need to open
info
level log (gc=info
). - You can check GC STW time.
- You can also check specific GC events when you click the plot on the chart.
- [Chart] -> [Memory] -> [Metaspace]
- You need to open
info
level log (gc+metaspace=info
). - You can check Metaspace usage and capacity. This chart shows Metaspace GC event.
- [Chart] -> [Memory] -> [CodeCache]
- You need to open
debug
level log (compilation+codecache=debug
). - You can check CodeCache usage. This chart stacks CodeCache usage by segments (non-profiled nmethods, profiled nmethods, non-nmethods).
- [Chart] -> [Memory] -> [Class histogram]
- You need to open
trace
level log (gc+classhisto*=trace
). - You can check class histogram when Full GC is invoked.
- [Chart] -> [VM Operations]
- You need to open
debug
level log (vmoperation=debug
). - You can check all VM operations.
- [Table] -> [Class loading]
- You need to open
debug
level log for class loading, and need to openinfo
level log for class unloading (class+load=debug,class+unload=info
). - You can check class loading / unloading information.
- [Table] -> [Age table]
- You need to open
trace
level log (gc+age=trace
). - You can check age table when GC is invoked.
You have to use JDK 17 or later.
$ mvn package
The GNU Lesser General Public License, version 3.0