logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remko Popma <remko.po...@gmail.com>
Subject Re: Need to clear ThreadContext for each HTTP request?
Date Wed, 18 Apr 2018 22:30:54 GMT
This is not something that can or should be automated imho. ThreadContext data disappearing
automatically can be just as confusing to troubleshoot (or more so). 

Remko

> On Apr 19, 2018, at 2:40, Gary Gregory <garydgregory@gmail.com> wrote:
> 
> On Tue, Apr 17, 2018 at 10:22 AM, Ralph Goers <ralph.goers@dslextreme.com>
> wrote:
> 
>> I have mixed feelings about that. Every filter I have created that clears
>> the ThreadContext at the end also injects values into the ThreadContext at
>> the beginning of the request, just as the example at
>> http://logging.apache.org/log4j/2.x/manual/eventlogging.html <
>> http://logging.apache.org/log4j/2.x/manual/eventlogging.html> does. So if
>> you were going to create a filter you would also want to provide a method
>> to do the setup, so your filter code would look something like:
>> 
>> public void doFilter(ServletRequest servletRequest, ServletResponse
>> servletResponse, FilterChain filterChain throws IOException,
>> ServletException {
>>        setupRequest(servletRequest, servletResponse);
>>        filterChain.doFilter(servletRequest, servletResponse);
>>        ThreadContext.clear();
>> }
>> 
>> public void setupRequest(servletRequest, servletResponse) {
>> }
>> 
>> But the only value this really has is the one line that was added to clear
>> the ThreadContext.  Is that really much of a “convenience”?
>> 
> 
> If that saves me the 30 minutes to Google, filter, understand, copy, and
> paste, then yes it is worth it.
> 
> Gary
> 
> 
>> 
>> Ralph
>> 
>> 
>>> On Apr 17, 2018, at 6:29 AM, Gary Gregory <garydgregory@gmail.com>
>> wrote:
>>> 
>>> Should we provide a stock Log4j filter that does that? A nice
>> convenience.
>>> 
>>> Gary
>>> 
>>> On Mon, Apr 16, 2018 at 10:01 PM, Kevin Jung <mykevinjung@gmail.com>
>> wrote:
>>> 
>>>> Thanks Remko and Ralph for the information.  I thought of clearing in a
>>>> filter, but somehow I thought there might be a clean up mechanism
>> already
>>>> because using ThreadContext in Tomcat is a quite common thing.  But that
>>>> was just my assumption.  I agree that it's better to *clear explicitly*.
>>>> 
>>>> Thanks,
>>>> Kevin
>>>> 
>>>> On Mon, Apr 16, 2018 at 8:32 PM, Ralph Goers <
>> ralph.goers@dslextreme.com>
>>>> wrote:
>>>> 
>>>>> See the example at http://logging.apache.org/
>>>>> log4j/2.x/manual/eventlogging.html <http://logging.apache.org/
>>>>> log4j/2.x/manual/eventlogging.html>. You will see the call to clear
>> the
>>>>> ThreadContext. It does indeed use a filter.
>>>>> 
>>>>> Ralph
>>>>> 
>>>>>> On Apr 16, 2018, at 7:01 PM, Kevin Jung <mykevinjung@gmail.com>
>> wrote:
>>>>>> 
>>>>>> Hello,
>>>>>> 
>>>>>> I am using Log4j 2 ThreadContext with Tomcat.  I wonder if I need
to
>>>>> clear
>>>>>> ThreadContext at the end (or start) of HTTP request in order to avoid
>>>> the
>>>>>> context data being carried over to next HTTP request processing.
>>>>>> 
>>>>>> I was assuming that thread context is cleared when Tomcat thread
is
>> put
>>>>>> back in the thread pool and when a Tomcat thread starts processing
new
>>>>> HTTP
>>>>>> request, it starts with an empty thread context, nothing carried
over
>>>>> from
>>>>>> the previous HTTP request.  But that's my assumption, I want to make
>>>>> sure I
>>>>>> do not need to clear at the end, like using a servlet filter.  Or
>>>> should
>>>>> I
>>>>>> use CloseableThreadContext to avoid carrying over among HTTP requests?
>>>>>> 
>>>>>> Thanks,
>>>>>> Kevin
>>>>> 
>>>>> 
>>>> 
>> 
>> 

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Mime
View raw message