# Trace Flags

Trace flags allow for specialized logging that cuts across many classes. They can be set for user requests by entering the online system in debug mode and setting the trace flags appropriately. Likewise, they can be set in batch either by interactive prompts for the trace flag values when a job starts or by setting system property values. See the `JobSubmitterConfiguration` class for specific system property names.

- `traceSQL` - Causes special detail of the submitted SQL. This can be useful when troubleshooting performance problems.
- `traceTime` - This can only be enabled for online requests or JUnit tests by setting `traceTime(true)` on the request context. Enabling time tracing will cause special profiling entries to be placed in the application log for the purpose of attributing request latency to the various layers of the application or to specific SQL statements. These entries are queued in memory until after profiling entries are no longer being generated and then spooled to the logs, so as not to corrupt the performance instrumentation with logging overhead. The `ProfilingReport` standalone Java program can be run to post-process these logs or a portion of them, and generate a report.

Parent topic: Configuring Logging at Runtime