On 4/19/07, Raymond Feng <[EMAIL PROTECTED]> wrote:
Hi, I created a prototype to play with aop-based logging and tracing. The annotation-style aspect development seems to be simpler as it doesn't require the aspectj compiler. You can see the code at: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/rfeng/aop-logging You can download aspectj 1.5.3 from http://www.eclipse.org/downloads/download.php?file=/tools/aspectj/aspectj-1.5.3.jar and then run the prototype using "test.bat" in the root of the project. Thanks, Raymond ----- Original Message ----- From: "Raymond Feng" <[EMAIL PROTECTED]> To: <tuscany-dev@ws.apache.org> Sent: Wednesday, April 18, 2007 10:49 AM Subject: Re: Monitoring, logging, and exceptions (was: Re: Notifcation of missing extensions) > Hi, > > Please see my comments below. > > Thanks, > Raymond > > ----- Original Message ----- > From: "ant elder" <[EMAIL PROTECTED]> > To: <tuscany-dev@ws.apache.org> > Sent: Wednesday, April 18, 2007 3:51 AM > Subject: Monitoring, logging, and exceptions (was: Re: Notifcation of > missing extensions) > > >> On 4/17/07, Jean-Sebastien Delfino <[EMAIL PROTECTED]> wrote: >> >> <snip/> >> >> I found our current Monitor stuff difficult to follow as well. I suggest >>> that we start a new discussion thread to discuss monitoring in general, >>> and try to come up with something that will be more usable and easier to >>> adopt through our whole runtime. >> >> >> Starting the new thread for you... >> >> I agree we should improve monitoring and logging in the runtime. >> >> I've used AOP before for this type of thing, its cool, but it does add >> yet >> another new thing to know about which could be off putting for new >> developers. How about just using one of the existing logging packages >> that >> most people are already completely familiar with? Commons Logging looks >> like >> its coming to its end, no one really likes java.util.logging, so how >> about >> SLF4J, its really easy and nice to use? >> > > I personally don't like the Commons Logging approach very much due to the > fact that conflicting versions are used by many 3rd party artifacts. > > With regard to AOP, do we really need to have all the developers learn how > to use it? I assume we can put together some logging aspects in a separate > module to take care of most of the logging/monitoring concerns. Other > modules are not even aware of the existence of the AOP. Isn't it the > objective of AOP to address the cross-cutting concerns without poluting > the code? > >> I also think exception handling could be improved, I don't find the >> current >> exception formatter design easy to use, and most times stack traces end >> up >> missing the important bit of information you need. How about just using >> the >> traditional way of putting everything in the exception message and >> using >> properties files to allow for I18N? >> > > I think we might be able to improve the ExceptionFormatter by providing a > default formatter which could dump out all the information in the > exception object. We already have a similar function in > "org.apache.tuscany.assembly.util.PrintUtil" and we could further enhance > it. > > To support I18N, we could adopt a pattern for the exception so that a > getter or a field can be recoginzed as the message id. > >> One thing I've wondered about was having a release specifically targeting >> these RAS type features. So once we've worked out the strategy for >> logging, >> exceptions, internationalization etc we have a release where a big focus >> is >> on implementing/fixing/testing all these RAS things. >> > > +1. Enabling RAS is a big effort. > >> ...ant >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] On the positive side this seems like an approach we could use that
separates logging/tracing from the application code. However you still need the aspectj runtime to weave the annotation based aspects into the application classfiles right. I am attracted by doing tracing with aspectj. So that we can turn it off completely when we are done. However I support using a more standard approach for logging more highlevel and persistent events which we might want to plug into other monitoring tools. Regards Simon