axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Hawkins <HAWKI...@uk.ibm.com>
Subject Re: Trace
Date Fri, 06 Aug 2004 09:39:50 GMT




Hi Roshan,

Entry and exit trace:
This is where, at the start of every method - you put in trace to say that
you are entering that method with the parameters that are going into that
method e.g.
myMethodName(char* mymethodparam)
{     entryTrace("myMethodName", myMethodParam);

}

exit trace is the opposite of that i.e. when the method is exited (only
when exited cleanly however, if there is an exception then you do not trace
this as an exit but put in exception tracing e.g.


myMethodName(char* mymethodparam)
{     entryTrace("myMethodName", myMethodParam);

      {
            // throwing  an exception here
            // no EXIT trace required but will trace the exception
            traceException("exceptionID plus other useful information",
exception);


      }

      exitTrace("myMethodName", NULL);
      return NULL;
}

Creation of entry and exit trace could be done using AspectC+
(http://www.aspectc.org). Then the code writer sees none of the entry and
exit trace thus saving code clutter. (There may be legal issues for us in
IBM using this so we are wary at the moment but urgently looking into it).


In terms of general trace - I would expect that to be whereever some useful
information is around and needs to be traced. Again ALL trace is switch
offable at the runtime if not required.



re: use of log4cpp. I think I don't care too much about either using this
system or adding in our own. With aspects you can simply create another
aspect that uses log4cpp instead of our own if that's peoples preference.







John Hawkins




                                                                           
             Roshan                                                        
             Weerasuriya                                                   
             <roshan@opensourc                                          To 
             e.lk>                     Apache AXIS C Developers List       
                                       <axis-c-dev@ws.apache.org>          
             06/08/2004 10:08                                           cc 
                                                                           
                                                                   Subject 
             Please respond to         Re: Trace                           
              "Apache AXIS C                                               
             Developers List"                                              
                                                                           
                                                                           
                                                                           
                                                                           




hi John,

> How does the community feel about putting in entry and exit trace?

What do you mean by entry and exit trace? You mean the entry point and
the exit point of the problematic situation or something else?

>we can
> put it in as a build time option ie. write a program to put it in
> automatically when building. This is the least error prone way of doing
it.

Also what do you mean by "write a program to put it in automatically
when building" ?

In my openion, if the trace provides information to describe the
situation well, the community would be ok of it. The amount of stuff put
to the trace (certainly only the necessory once), doesn't cause any
issue, because it is just to describe the situation well. So if you need
those then I guess you could certainly put them. Adding them will not
cause any issues on performance etc, only a bunch of details will be
caused to print at exceptional situations. But if the trace is not only
used at exceptional situations, but also at normal situations may be
just to log details at runtime, then the amount put in the trace might
cause performance issues.

Roshan




On Fri, 2004-08-06 at 14:02, John Hawkins wrote:
>
>
> How does the community feel about putting in entry and exit trace?
> This is essential for the production level of code that we require. we
can
> put it in as a build time option ie. write a program to put it in
> automatically when building. This is the least error prone way of doing
it.
>
>
> John Hawkins
>
>
>
>
>

>              damitha kumarage

>              <damitha@opensour

>              ce.lk>
To
>                                        Apache AXIS C Developers List

>              06/08/2004 07:33          <axis-c-dev@ws.apache.org>

>
cc
>

>              Please respond to
Subject
>               "Apache AXIS C           Re: Trace

>              Developers List"

>

>

>

>

>

>
>
>
>
> Perhaps we need to have a look at a good logging tool for c++(Log4cpp)
> and see
> whether we can plug it to Axis C++.
>
> Thanks
> damitha
>
> On Thu, 2004-08-05 at 17:15, John Hawkins wrote:
> >
> >
> > +1 that was the solution we came up with a few minutes after me sending
> > this note :-)
> >
> >
> > John Hawkins
> > IBM,
> > AspectX Architect,
> > C web services client dev.
> >
> > +44 (0) 1962 817131
> >
> >
> >
> >
>
> >              Samisa Abeysinghe
>
> >              <samisa_abeysingh
>
> >              e@yahoo.com>
> To
> >                                        Apache AXIS C Developers List
>
> >              05/08/2004 11:53          <axis-c-dev@ws.apache.org>
>
> >
> cc
> >
>
> >              Please respond to
> Subject
> >               "Apache AXIS C           Re: Trace
>
> >              Developers List"
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
> >
> >
> >
> > Sounds good to me.
> >
> > As the method body of 'trace' is excuted only if the trace option is
set
> > this would not be a
> > problem for individual cases.
> > However, depending on how often the method is called, there could be a
> > performance hit. (but may
> > be this is negligible at times)
> >
> > To let those who wish to go without the trace at all, we could use both
> the
> > dynamic and static
> > options in combination. (i.e. have both compiler option and conf file
> > option)
> >
> > Thanks,
> > Samisa...
> >
> >
> > --- John Hawkins <HAWKINSJ@uk.ibm.com> wrote:
> >
> > >
> > >
> > >
> > >
> > > Hi Folks,
> > >
> > > More observations and questions -
> > >
> > > We are currently trying to track down a problem and therefore require
> > > trace. This made us look at trace !
> > >
> > > 1) Trace seems to be used mainly for error messages rather than e.g.
> > > tracing entry and exit of methods - Fair enough.
> > > 2) Dynamic versus static initialisation of trace: Trace is currently
a
> > > compile time option. This is not really very good for dealing with a
> > > customer situation where I can't really expect them to stop their
> system
> > > and start it again with a different version of our libraries. We have
> > > looked at trace code and concluded that it would be reasonably simple
> to
> > > put in the conf file a flag to say whether you wanted trace on or
not.
> > This
> > > would mean that the trace methods would always be called but the
trace
> > > object (AxisTrace) would look at the flag and consider whether to
> > actually
> > > do anything or not e.g.
> > > AxisTrace::trace(...)
> > > {
> > >        if(traceOn)
> > >       {
> > >             tracestuff
> > >       }
> > > }
> > >
> > > Now, I understand that calling a method when you might do nothing in
it
> > is
> > > not great but that's why I pointed out that really trace is not
really
> > full
> > > blown trace rather we use it more as an error message writer. In
which
> > case
> > > the trace is only used when something goes wrong and thus no
> performance
> > > overhead in the main line of code.
> > >
> > > Any thoughts - if not then we'll go ahead and implement the changes
> asap.
> > >
> > > thankyou,
> > > John.
> > >
> > >
> > >
> >
> >
> >
> >
> > __________________________________
> > Do you Yahoo!?
> > New and Improved Yahoo! Mail - Send 10MB messages!
> > http://promotions.yahoo.com/new_mail
> >
> >
> >
>
>
>
>




Mime
View raw message