The main components of JVM include the following:
- Classloader
- JVM memory where the runtime data is stored; it is broken down into the following areas:
- Stack area
- Method area
- Heap area
- PC registers
- Native method stack
- Execution engine, which consists of the following parts:
- Interpreter
- The JIT compiler
- Garbage collection
- Native method interface JNI
- Native method library
The log message of all these components can now be captured and analyzed using unified logging, turned on by the -Xlog option.
The main features of the new logging system are as follows:
- Usage of the log levels—trace, debug, info, warning, error
- Message tags that identify the JVM component, action, or message of a specific interest
- Three output types—stdout, stderr, and file
- The enforcement of the one-message-per-line limit