Please do!  Thanks!  -Benson

"Cakalic, James" wrote:

> We wrote a base class which all the data classes extend. Among other things
> it implements a reflection-based toString() that properly interrogates
> superclasses and permits Modifier-based filtering. If anyone is interested I
> can see if it would be permissible for me to post it.
>
> Jim Cakalic
>
> > -----Original Message-----
> > From: Benson Chen [mailto:[EMAIL PROTECTED]]
> > Sent: Tuesday, December 18, 2001 12:39 PM
> > To: Log4J Developers List
> > Subject: Re: automatic trace insertion
> >
> >
> > Vincent,
> >
> > Yup, I don't doubt that that's the way to do it.... nice
> > clean separation of
> > logic and data.  In order to make sense of the trace,
> > everyone has to make
> > sure that the toString() method is implemented for each data
> > object.  Actually
> > this leads to another question (which might need another
> > thread)... does
> > anyone know of some code that automatically creates
> > toString() methods?
> > Possibly using reflection to get instance variables and fills in the
> > toString() method for you.  As you can see, I'm a proponent
> > of any form of
> > automation... maybe because I'm lazy.  :-)  -Benson
> >
> > Vincent Massol wrote:
> >
> > > In our case, the data objects are just that ... data objects. These
> > > objects are manipulated by business methods (they are passed as
> > > parameters or returned). As you can seem, the AspectJ code I have
> > > provided does log all the parameters using the toString()
> > representation
> > > of an object. So each of our object has a printable toString method.
> > >
> > > -Vincent
> > >
> > > > -----Original Message-----
> > > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On
> > Behalf Of Benson
> > > Chen
> > > > Sent: 18 December 2001 17:15
> > > > To: Log4J Developers List
> > > > Subject: Re: automatic trace insertion
> > > >
> > > > Well sometimes logging those setter methods are just as important
> > > because
> > > > you
> > > > want to know as you trace through your code that some
> > object's state
> > > has
> > > > been
> > > > modified.  As to solve the volume problem, I wouldn't
> > enable logging
> > > to
> > > > your
> > > > whole system all at once unless of course you are doing system
> > > testing.
> > > > The
> > > > beauty of log4j is that you can have all sorts of
> > categories (one for
> > > each
> > > > class) to allow you to enable or disable traces depending
> > on what you
> > > are
> > > > interested in and the amount of volume you want to deal with.
> > > > Actually, one thing I was thinking about was having some sort of
> > > > intelligent
> > > > trace enablement where all traces are disabled by default but if a
> > > > RuntimeException is thrown, you have code that goes
> > through the stack
> > > > trace
> > > > and enables trace logs for classes/methods leading up to the
> > > exception.
> > > > This
> > > > way when you run your system again, you'll have logs tailored to
> > > watching
> > > > exactly what events occurred before your system blew up.
> > > > Again, I'm not dictating how you should use log4j, but I
> > would think
> > > that
> > > > being able to easily get at more information is always best.  But
> > > using
> > > > log4j
> > > > in any capacity is better than none at all.  :-)  -Benson
> > > >
> > > > Vincent Massol wrote:
> > > >
> > > > > You are right, Paul, it is important not to log
> > everything, as logs
> > > tend
> > > > > to grow big very quickly and performance suffer a lot.
> > In my project
> > > we
> > > > > use AspectJ to log entries and exits with the following rules :
> > > > >
> > > > > - public methods that accept at least one parameter (static and
> > > > > non-static),
> > > > > - exclude the data object packages (we have all our
> > data objects -
> > > > > setter/getter objects - located in a package)
> > > > >
> > > > > These rules seem to strike a good balance (at least for
> > us). Then,
> > > we
> > > > > use the log4j configuration to turn on/off logging for specific
> > > > > categories.
> > > > >
> > > > > -Vincent
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Paul Glezen [mailto:[EMAIL PROTECTED]]
> > > > > > Sent: 18 December 2001 15:07
> > > > > > To: Log4J Developers List
> > > > > > Subject: RE: automatic trace insertion
> > > > > >
> > > > > > Scott brings up an important point.  Do you really
> > want to trace
> > > every
> > > > > > method?  Even simple getters/setters?  Not only will
> > there be a
> > > > > > performance
> > > > > > penalty (acceptable in some circumstances), it would
> > also create
> > > more
> > > > > > volume than you might want.
> > > > > >
> > > > > > Paul Glezen
> > > > > > Consulting IT Specialist
> > > > > > IBM Software Services for WebSphere
> > > > > > 818 539 3321
> > > > > >
> > > > > >
> > > > > > Scott Coleman <[EMAIL PROTECTED]> on
> > 12/18/2001 06:57:50
> > > AM
> > > > > >
> > > > > > Please respond to "Log4J Developers List"
> > > > > <[EMAIL PROTECTED]>
> > > > > >
> > > > > > To:   "'Log4J Developers List'" <[EMAIL PROTECTED]>
> > > > > > cc:
> > > > > > Subject:  RE: automatic trace insertion
> > > > > >
> > > > > >
> > > > > >
> > > > > > Hi,
> > > > > >
> > > > > > I have not read the whole article yet, but I think
> > you will get a
> > > > > heavy
> > > > > > performance penalty if you use JPDA.
> > > > > > Can someone please explain to me why you would want
> > to log both
> > > entry
> > > > > and
> > > > > > exit calls, for such a thin layer in the code. I
> > thought that it
> > > was
> > > > > meant
> > > > > > to be very fast. So why would you want to add the performance
> > > overhead
> > > > > of
> > > > > > logging entry and exit information. If you were to go
> > down this
> > > path
> > > > > would
> > > > > > it not be better to use jdk 1.4's new assert feature ?
> > > > > >
> > > > > > Regards
> > > > > > Scott
> > > > > >
> > > > > > -----Original Message-----
> > > > > > From: Cakalic, James [mailto:[EMAIL PROTECTED]]
> > > > > > Sent: Monday, December 17, 2001 11:37 PM
> > > > > > To: 'Log4J Developers List'
> > > > > > Subject: RE: automatic trace insertion
> > > > > >
> > > > > >
> > > > > > This article about Jylog -- a JPDA based logging
> > generator -- just
> > > > > > appeared
> > > > > > on JavaWorld. Perhaps it relevant?
> > > > > >
> > > http://www.javaworld.com/javaworld/jw-12-2001/jw-1214-jylog.html
> > > > > >
> > > > > > Jim
> > > > > >
> > > > > > > -----Original Message-----
> > > > > > > From: Paul Glezen [mailto:[EMAIL PROTECTED]]
> > > > > > > Sent: Monday, December 17, 2001 4:25 PM
> > > > > > > To: Log4J Developers List
> > > > > > > Subject: Re: automatic trace insertion
> > > > > > >
> > > > > > >
> > > > > > > Hi Benson,
> > > > > > >
> > > > > > > It's not as easy as it looks to do "intelligently".
> >  While it is
> > > > > often
> > > > > > > taught that methods should have a single entry
> > point and exit
> > > > > > > point, not
> > > > > > > many programmers adhear to this.  It is not at all uncommon
> > > > > > > to find return
> > > > > > > statements in if-blocks and try-catch blocks.  Sometimes the
> > > > > > > exit logic can
> > > > > > > get very convoluted.
> > > > > > >
> > > > > > > I've always been partial to single exit logic.  I didn't
> > > > > > > become a fan until
> > > > > > > trying to insert trace statements, just as you describe, in
> > > > > > > other people's
> > > > > > > code.  It can be a nightmare.
> > > > > > >
> > > > > > > - Paul
> > > > > > >
> > > > > > > Paul Glezen
> > > > > > > Consulting IT Specialist
> > > > > > > IBM Software Services for WebSphere
> > > > > > > 818 539 3321
> > > > > > >
> > > > > > >
> > > > > > > Benson Chen <[EMAIL PROTECTED]>@porivo.com on 12/17/2001
> > > 01:57:15 PM
> > > > > > >
> > > > > > > Please respond to "Log4J Developers List"
> > > > > > > <[EMAIL PROTECTED]>
> > > > > > >
> > > > > > > Sent by:  [EMAIL PROTECTED]
> > > > > > >
> > > > > > >
> > > > > > > To:   [EMAIL PROTECTED]
> > > > > > > cc:
> > > > > > > Subject:  automatic trace insertion
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Hi all,
> > > > > > >
> > > > > > > I'm interested in automatically inserting log4j trace
> > > > > > > statements at the
> > > > > > > beginning of all methods and right before the end
> > of a method
> > > > > (return
> > > > > > > statement or thrown exception).  I'm presuming most
> > people have
> > > > > worked
> > > > > > > on projects with extensive class libraries and it
> > would be great
> > > if
> > > > > > > there was a class parser that could intelligently
> > insert log4j
> > > > > > > statements automatically.  If there isn't anything out there
> > > > > > > like that,
> > > > > > > does anyone know of a java class parser that can be used to
> > > > > > > do this sort
> > > > > > > of thing?  Thoughts or ideas?  Thanks!
> > > > > > >
> > > > > > > --
> > > > > > > Benson Chen
> > > > > > > Director of Software Engineering
> > > > > > > Porivo Technologies, Inc.
> > > > > > > Phone: (919)806-0566x12
> > > > > > > E-Mail: [EMAIL PROTECTED]
> > > > > > > "Measuring end-to-end Web performance"
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > To unsubscribe, e-mail:
> > > > > > > <mailto:[EMAIL PROTECTED]>
> > > > > > > For additional commands, e-mail:
> > > > > > > <mailto:[EMAIL PROTECTED]>
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > To unsubscribe, e-mail:
> > > > > > > <mailto:[EMAIL PROTECTED]>
> > > > > > > For additional commands, e-mail:
> > > > > > > <mailto:[EMAIL PROTECTED]>
> > > > > > >
> > > > > >
> > > > > >
> > > > > > <font size="1">Confidentiality Warning:  This e-mail contains
> > > > > information
> > > > > > intended only for the use of the individual or entity
> > named above.
> > > If
> > > > > the
> > > > > > reader of this e-mail is not the intended recipient or the
> > > employee or
> > > > > > agent
> > > > > > responsible for delivering it to the intended recipient, any
> > > > > > dissemination,
> > > > > > publication or copying of this e-mail is strictly
> > prohibited. The
> > > > > sender
> > > > > > does not accept any responsibility for any loss, disruption or
> > > damage
> > > > > to
> > > > > > your data or computer system that may occur while using data
> > > contained
> > > > > in,
> > > > > > or transmitted with, this e-mail.   If you have received this
> > > e-mail
> > > > > in
> > > > > > error, please immediately notify us by return e-mail.
> >  Thank you.
> > > > > >
> > > > > >
> > > > > > --
> > > > > > To unsubscribe, e-mail:   <mailto:log4j-dev-
> > > > > > [EMAIL PROTECTED]>
> > > > > > For additional commands, e-mail: <mailto:log4j-dev-
> > > > > > [EMAIL PROTECTED]>
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > To unsubscribe, e-mail:   <mailto:log4j-dev-
> > > > > > [EMAIL PROTECTED]>
> > > > > > For additional commands, e-mail: <mailto:log4j-dev-
> > > > > > [EMAIL PROTECTED]>
> > > > >
> > > > > --
> > > > > To unsubscribe, e-mail:   <mailto:log4j-dev-
> > > > [EMAIL PROTECTED]>
> > > > > For additional commands, e-mail: <mailto:log4j-dev-
> > > > [EMAIL PROTECTED]>
> > > >
> > > > --
> > > > Benson Chen
> > > > Director of Software Engineering
> > > > Porivo Technologies, Inc.
> > > > Phone: (919)806-0566x12
> > > > E-Mail: [EMAIL PROTECTED]
> > > > "Measuring end-to-end Web performance"
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > To unsubscribe, e-mail:   <mailto:log4j-dev-
> > > > [EMAIL PROTECTED]>
> > > > For additional commands, e-mail: <mailto:log4j-dev-
> > > > [EMAIL PROTECTED]>
> > > >
> > >
> > > --
> > > To unsubscribe, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > > For additional commands, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> >
> > --
> > Benson Chen
> > Director of Software Engineering
> > Porivo Technologies, Inc.
> > Phone: (919)806-0566x12
> > E-Mail: [EMAIL PROTECTED]
> > "Measuring end-to-end Web performance"
> >
> >
> >
> >
> > --
> > To unsubscribe, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> >
>
> <font size="1">Confidentiality Warning:  This e-mail contains information intended 
>only for the use of the individual or entity named above.  If the reader of this 
>e-mail is not the intended recipient or the employee or agent responsible for 
>delivering it to the intended recipient, any dissemination, publication or copying of 
>this e-mail is strictly prohibited. The sender does not accept any responsibility for 
>any loss, disruption or damage to your data or computer system that may occur while 
>using data contained in, or transmitted with, this e-mail.   If you have received 
>this e-mail in error, please immediately notify us by return e-mail.  Thank you.

--
Benson Chen
Director of Software Engineering
Porivo Technologies, Inc.
Phone: (919)806-0566x12
E-Mail: [EMAIL PROTECTED]
"Measuring end-to-end Web performance"




--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to