It would really only work with 1 extra criteria.
I don't know the impact of many loggers.

On 7/19/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
That's an interresting work arround.
Still that is tedious when several criterias are needed.

Since we are talking about a server, that would create a huge number of 
loggers. Do you have any idea about performance impact?

>-----Original Message-----
>From: ext James Stauffer [mailto:[EMAIL PROTECTED]
>Sent: Wednesday, July 19, 2006 5:22 PM
>To: Log4J Users List
>Subject: Re: High performance filters
>
>One option would be to include to the IP address in the logger name.
>Logger log = Logger.getLogger(getClass().getName() + "." +
>request.getSourceAddress());
>
>That would create many more loggers but would allow
>log.isDebugEnabled() to work correctly.
>
>On 7/19/06, [EMAIL PROTECTED]
><[EMAIL PROTECTED]> wrote:
>> I'm not sure your proposal solves my problem.
>> I'm sorry if my question was not clear enough. Let me try
>another way:
>>
>> Considering the following code snippet
>>
>> // the following method is called-back hundred of time // per second.
>> public void process(Request request, Response response) {
>>     NDC.push("source-ip=" + request.getSourceAddress());
>>     if (log.isDebugEnabled())
>>     {
>>         log.debug(buildDebugMessage(request));
>>     }
>>     // process request and send response ...
>>     NDCP.pop();
>> }
>>
>> I need that log.debug(buildDebugMessage(request)) is called
>only if the logger is in debug mode AND the source-ip within
>the NDC is 192.168.0.12 (this source cause some trouble to the
>server in this example), so that it would be possible to turn
>live servers in debug mode for some (problematic) context and
>investigate directly in production without killing performances.
>>
>> The NDC+Filtering method does not help that much here. It
>does prevent messages from beeing wrote if they don't match
>the expected context (source IP 192.168.0.12 in my example),
>but it does not prevent the debug message from being built
>(the buildDebugMessage(request) call) which is still quite
>expensive (and useless in this context).
>>
>> I hope this is clear enough :)
>>
>> Thanks a lot for your time!
>> Vincent.
>>
>>
>>
>>
>> >-----Original Message-----
>> >From: ext Javier Gonzalez [mailto:[EMAIL PROTECTED]
>> >Sent: Wednesday, July 19, 2006 3:44 PM
>> >To: Log4J Users List
>> >Subject: Re: High performance filters
>> >
>> >Create separate Loggers for the debug requests, and leave
>only those
>> >loggers at debug level. Then prepend log.debug() calls with
>> >if(log.isDebugEnabled()), so that the debug messages will only be
>> >created if the particular logger is debug enabled.
>> >
>> >(I'm not sure I understood your question correctly, though)
>> >
>> >On 7/19/06, [EMAIL PROTECTED]
>> ><[EMAIL PROTECTED]> wrote:
>> >> Hi all,
>> >>
>> >> I'm building some kind of server and I use log4j for logging.
>> >> For troubleshooting issue I whant to be able to debug some few
>> >> requests only (based on matching criterias) so that it is
>> >possible to
>> >> debug live servers without killing performances.
>> >>
>> >> I managed to use NDC and filters to do that and it does
>> >well. However,
>> >> filters are actually applied *after* log messages. Then using
>> >> NDC+filters solves only half the issue since the debug
>messages are
>> >> still created (even if not logged to disk). And because this
>> >is quite
>> >> CPU and RAM intensive it would drop the performances below
>> >acceptable
>> >> production-level.
>> >>
>> >> Do you know if there is any way to use a filter-like mechanis at
>> >> log.isDebugEnabled() level for example? This way it would be
>> >possible
>> >> to not even build debug messages when the NDC does not match
>> >> criterias, thus saving a lot CPU and RAM usage and allowing
>> >debugging live servers.
>> >>
>> >> Thanks all,
>> >> Vincent Bourdaraud.
>> >>
>> >>
>> >
>> >
>> >--
>> >Javier González Nicolini
>> >
>>
>>---------------------------------------------------------------------
>> >To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >For additional commands, e-mail: [EMAIL PROTECTED]
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
>--
>James Stauffer
>Are you good? Take the test at http://www.livingwaters.com/good/
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>

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




--
James Stauffer
Are you good? Take the test at http://www.livingwaters.com/good/

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

Reply via email to