Here's a little refactor of the Monitor stuff taking into account Justin's comments here:
I've added the abstract LoggingMonitor which the other implementations (other than the NullMonitor) extend. I've modified all methods to take a Class as the first parameter so we can obtain the logger name being to be used (and modified PersistentJournal and SimpleInputStream to account for this change). I also modified SimpleInputStream to log to the info level and modified the MainXStream class to use the Log4jMonitor so I could quickly test the Log4jMonitor implementation.
To test this out, grab a fresh copy of CVS, extract the zip file over the root module ("prevayler"), and everything should be put into place. It includes a log4j.xml configured to log to the info level for org.prevayler. Use the Ant build to run the XStream bank demo such as...
Now look in prevayler/target/logs/main.log to see the logging and prove it is working.
Note that I left the notify() methods there. I don't care if we use notify() or go with explicit methods. I just wanted to get this out there for comment.