Documentation Contents

# Java RMI Implementation Logging

The Java Remote Method Invocation (Java RMI) implementation uses the Logging APIs to provide implementation logging output. The logging configuration file and programmatic API (`java.util.logging`) can be used to configure Java RMI implementation logging.

The `java.rmi.server.logCalls` system property and the implementation-specific `sun.rmi.*` logging properties that were recognized by previous JDK versions still function to set the default levels for the Java RMI implementation `Logger` objects and to cause their output to be directed to `System.err` as with earlier versions.

The table below shows the names of the `Logger` objects used by the Java RMI implementation and how they correspond to the logging properties supported by previous versions.

Note that the Java RMI implementation supports a logging category, client-side call logging, which is analogous to the server-side call logging activated by the `java.rmi.server.logCalls` property. Client-side call logging is output to the `Logger` named `sun.rmi.client.call`.

System Property Name | Logger Name | Information Logged
--- | --- | ---
`java.rmi.server.logCalls` | `sun.rmi.server.call` | server-side remote calls and exceptions
`sun.rmi.server.logLevel` | `sun.rmi.server.ref` | server-side remote reference activity
`sun.rmi.client.logCalls` | `sun.rmi.client.call` | client-side remote calls and exceptions
`sun.rmi.client.logLevel` | `sun.rmi.client.ref` | client-side remote reference activity
`sun.rmi.dgc.logLevel` | `sun.rmi.dgc` | distributed garbage collection activity
`sun.rmi.loader.logLevel` | `sun.rmi.loader` | activity of default `RMIClassLoader` provider
`sun.rmi.transport.logLevel` | `sun.rmi.transport.misc` | transport-layer activity
`sun.rmi.transport.tcp.logLevel` | `sun.rmi.transport.tcp` | TCP binding and connection activity
`sun.rmi.transport.proxy.logLevel` | `sun.rmi.transport.proxy` | HTTP tunnelling activity
(none) | `sun.rmi.runtime` | miscellaneous runtime activity

For both the `sun.rmi.client.call` and the `sun.rmi.server.call` `Logger`s, exceptions thrown from remote calls are logged at the level `Level.FINE`, and each remote call is logged at the level `Level.FINER`. Setting the `java.rmi.server.logCalls` or `sun.rmi.client.logCalls` system properties to the value `"true"` causes the corresponding `Logger` to be set to the level `Level.FINER`.

For the `sun.rmi.*` logging properties that have names ending in `".logLevel"`, a value of `"BRIEF"` causes the corresponding `Logger` to be set to the level `Level.FINE`, and a value of `"VERBOSE"` causes the corresponding `Logger` to be set to the level `Level.FINER`. Use of the logging configuration file is now preferred over the use of these `sun.rmi.*` system properties for logging.

Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved.
Contact Us