Implement uniform state-logging using aspects. This scheme depends on two
annotations: @Domain labels a class for which calls to the constructor are
logged. @StateChange labels a method that must be logged (with its arguments)
when it is called. Log output is a single text line consisting of the
following fields, separated by double colon :: strings
(assuming the log4j config puts out the msec data):
- milliseconds from start of log
- class name
- instance id value
- method name ("new" for constructor)
- method arguments, separated by ::