Trace.java is a package used by Java programmers, testers, server administrators and others to understand what happened during the execution of a program. It doesn't generate tracing statements automatically; programmers have to add them. Trace messages go into an in-core ring buffer, a disk log, or both. The disk log can be fixed size with backups. What amount of detail gets logged can be controlled at runtime or launch time. The ring buffer and disk log can be controlled separately. Different subsystems of the code can be controlled independently.