This week's book / license giveaways are in the JDBC and Relational Databases and Java in General forums.
We're giving away four copies each of PostGIS in Action and Java Advanced Topics Training and have the authors on-line!
See this thread and this one for details.
The moose likes Distributed Java and the fly likes RMI Logging - Cryptic output Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

JavaRanch » Java Forums » Java » Distributed Java
Bookmark "RMI Logging - Cryptic output" Watch "RMI Logging - Cryptic output" New topic

RMI Logging - Cryptic output

David Duran
Ranch Hand

Joined: Feb 11, 2002
Posts: 122
Okay, this might very well be a "Duh" question but I've noticed that when I run my RMI servers, a "log" directory is made with the following files:
Does anyone know what those files are? I would think that they contain RMI logging output but none of the files are in a readable text format.
I need to turn on much of the RMI logging facilities to debug a problem and I'm trying to figure out where and how to read the log files. Any help would be appreciated.
I've never worked with 1.4's logging mechanism before. I use log4j.
David Duran
Ranch Hand

Joined: Feb 11, 2002
Posts: 122
Well, I found this information: which seems to answer my above questions in regards to the "log" directory.
Chris Shepherd
Ranch Hand

Joined: Jun 27, 2000
Posts: 286
Thanks for posting your solution. It might help someone else who is having the same problem.
David Duran
Ranch Hand

Joined: Feb 11, 2002
Posts: 122
A followup on what I've found out for turning on the default RMI logging:
1) Refer to RMI Implementation Logging for the list of RMI logging properties.
2) Pass "-C-Djava.rmi.server.logCalls=true" when you run the rmid program. You might also want to pass "-C-Dsun.rmi.log.debug=true" as well.
An example command looks like:
${JAVA_HOME}/bin/rmid -C-Djava.rmi.server.logCalls=true -C-Dsun.rmi.log.debug=true &
* Note: This caused the RMI logging output to be printed via System.err on my console window which wasn't very helpful since I wanted it saved to a file. In my search I came across these 2 tidbits in a couple of RMI books:
The easiest way to get the "sun.rmi.*" logs to be saved to a log file is to redirect System.err

You have to set the logging destination before you invoke any RMI methods. Once RMI starts loggging to a particular PrintSteam, it keeps logging to that PrintStream.

Check this link for code on how to redirect to System.err: Redirecting streams
The conclusion:
The code that redirects System.err is run only when a remote method is called, mainly because I'm using Activatable objects (the implementation classes reference a constants class which has a static code block that has the redirection code). Because of that, I can't satisfy the condition stated in the second quote which means I still don't know how to get the RMI logging to be output to a file.
At the very least, I can at least see the RMI log output now.
Hope this helps anyone else.
[ February 18, 2004: Message edited by: David Duran ]
I agree. Here's the link:
subject: RMI Logging - Cryptic output