Java Remote Method Invocation (Java RMI)実装では、ロギングAPIを使用して実装のログを出力します。 ログ構成ファイルおよびプログラムによるAPI (java.util.logging)は、Java RMI実装ログの構成に使用することができます。
JDKの前のバージョンで認識されていた、java.rmi.server.logCallsシステム・プロパティおよび実装固有のsun.rmi.*ログ・プロパティは引き続き使用可能です。この機能により、前のバージョンと同様、Java RMI実装のLoggerオブジェクトのデフォルト・レベルの設定、およびJava RMI実装ログのSystem.errへの出力が可能です。
Java RMI実装によって使用されるLoggerオブジェクトの名前、および前バージョンでサポートされていたログ・プロパティとの対応について、次の表に示します。
Java RMI実装は、ログ記録カテゴリである、クライアント側呼出しログ記録をサポートしていることに注目してください。これは、java.rmi.server.logCallsプロパティによって起動されるサーバー側呼出しログ記録と類似しています。 クライアント側呼出しログ記録は、sun.rmi.client.callという名前のLoggerに出力されます。
| システム・プロパティ名 | Logger名 | ログ記録される情報 |
|---|---|---|
java.rmi.server.logCalls |
sun.rmi.server.call |
サーバー側のリモート呼び出しおよび例外 |
sun.rmi.server.logLevel |
sun.rmi.server.ref |
サーバー側のリモート参照動作 |
sun.rmi.client.logCalls |
sun.rmi.client.call |
クライアント側のリモート呼び出しおよび例外 |
sun.rmi.client.logLevel |
sun.rmi.client.ref |
クライアント側のリモート参照動作 |
sun.rmi.dgc.logLevel |
sun.rmi.dgc |
分散ガベージ・コレクション動作 |
sun.rmi.loader.logLevel |
sun.rmi.loader |
デフォルトのRMIClassLoaderプロバイダの動作 |
sun.rmi.transport.logLevel |
sun.rmi.transport.misc |
トランスポート層の動作 |
sun.rmi.transport.tcp.logLevel |
sun.rmi.transport.tcp |
TCPバインディングおよび接続動作 |
sun.rmi.transport.proxy.logLevel |
sun.rmi.transport.proxy |
HTTPトンネリング動作 |
| (なし) | sun.rmi.runtime |
その他のランタイム・アクティビティ |
sun.rmi.client.callおよびsun.rmi.server.callのLoggerでは、リモート呼び出しからスローされた例外はLevel.FINEレベルでログ記録され、各リモート呼出しは、Level.FINERレベルでログ記録されます。 java.rmi.server.logCallsまたはsun.rmi.client.logCallsシステム・プロパティを"true"値に設定すると、対応するLoggerがレベルLevel.FINERに設定されます。
名前の末尾に".logLevel"の付くsun.rmi.*ログ・プロパティの場合、"BRIEF"値に設定すると対応するLoggerがレベルLevel.FINEに設定され、"VERBOSE"値に設定すると対応するLoggerがレベルLevel.FINERに設定されます。 ロギング用のこれらのsun.rmi.*システム・プロパティを使用するよりも、ロギング構成ファイルを使用することをお勧めします。