ulviewer
ulviewer copied to clipboard
Log viewer for Unified JVM Logging
UL Viewer

UL Viewer is log parser for JEP 158: Unified JVM Logging and JEP 271: Unified GC Logging.
How to use
Start application
Linux x64
$ cd ulviewer-<version>-Linux-amd64/bin
$ ./ulviewer
Windows x64
- Run
ulviewer.bat - If your machine has WSL (Windows Subsystem for Linux), you can run
ulviewerdirectly.ulvieweris shell script.
Open log(s)
You can open several logs from [File] -> [Open Log] menu.
Log parser wizard
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.
Check your logs!
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.
Drawing chart
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.
Java heap chart
- [Chart] -> [Memory] -> [Java heap]
- You need to open
infolevel 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.
GC pause time chart
- [Chart] -> [Memory] -> [Pause time]
- You need to open
infolevel log (gc=info). - You can check GC STW time.
- You can also check specific GC events when you click the plot on the chart.
Metaspace chart
- [Chart] -> [Memory] -> [Metaspace]
- You need to open
infolevel log (gc+metaspace=info). - You can check Metaspace usage and capacity. This chart shows Metaspace GC event.
CodeCache chart
- [Chart] -> [Memory] -> [CodeCache]
- You need to open
debuglevel log (compilation+codecache=debug). - You can check CodeCache usage. This chart stacks CodeCache usage by segments (non-profiled nmethods, profiled nmethods, non-nmethods).
Class histogram
- [Chart] -> [Memory] -> [Class histogram]
- You need to open
tracelevel log (gc+classhisto*=trace). - You can check class histogram when Full GC is invoked.
VM Operations
- [Chart] -> [VM Operations]
- You need to open
debuglevel log (vmoperation=debug). - You can check all VM operations.
Show data table
Class loading/unloading
- [Table] -> [Class loading]
- You need to open
debuglevel log for class loading, and need to openinfolevel log for class unloading (class+load=debug,class+unload=info). - You can check class loading / unloading information.
Age table
- [Table] -> [Age table]
- You need to open
tracelevel log (gc+age=trace). - You can check age table when GC is invoked.
How to build
You have to use JDK 17 or later.
$ mvn package
License
The GNU Lesser General Public License, version 3.0