Logback configuration

Deephaven Core uses logback for logging, which reads initial configuration from a logback.xml file packaged with the server process and also permits changing log levels at runtime.

Note that logback changes logging levels for logger names, not directly for classes. A logger name may correspond to a specific class, but it may also be shared by multiple classes or represent a package-level logger. Many Deephaven classes, particularly ones imported from the Enterprise code base, use shared loggers. In those cases, you cannot change logging for only one class; you can only change the level for the shared logger name, which will affect every class that uses it.

XML Configuration

The default file is located in /usr/illumon/coreplus/latest/lib/Main-41.7-2026.01.042.jar as logback.xml. You can extract the default configuration with:

After executing this command, /tmp/logback.xml will contain the default logback configuration, similar to:

You can adjust the configuration, for example, by adding a <logger> element to change the logging level for a specific package. After making your adjustments, you can add the modified logback.xml file to a jar:

After creating the jar, you can put it in the custom_lib directory of your Core+ installation to override the default configuration.

The new configuration takes effect for newly started workers; existing workers have already read the configuration file and do not update.

Set the log level for Core+ PQ workers

Configuration properties such as IrisLogDefaults.logLevel=DEBUG and RemoteQueryProcessor.logLevel=DEBUG control the Legacy binary-log appender filter level and do not affect the logback root log level for Core+ PQ workers. To enable more verbose logging (for example, DEBUG) in Core+ PQ workers, you must use a custom logback.xml.

To set the root log level to DEBUG, modify the <root> element in your logback.xml:

To limit the scope to a specific package and reduce log noise, add a <logger> element instead of changing the root level:

After modifying your logback.xml, package it and deploy it as described in the XML Configuration section above. The new configuration takes effect for newly started workers only.

Temporary log level changes

From Groovy, you can change the log level of individual classes at runtime. For example, to set the log level of ConstructSnapshot to DEBUG, you can run:

Similarly, from Python, you can use low-level jpy primitives to change the log level of a class. For example, to set the log level of ConstructSnapshot to DEBUG: