Rainer Schnitker created LOG4J2-1588:

             Summary: Console or File Logger caches thread name, but not in 
older log4j2 versions
                 Key: LOG4J2-1588
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1588
             Project: Log4j 2
          Issue Type: Bug
    Affects Versions: 2.6.2
         Environment: Windows, Grizzly HTTP container, SLF4J API, Log4j2
            Reporter: Rainer Schnitker

Log4j2 2.6.x seems to cache the thread name. A revert to version 2.4.1. works! 
This affects synchronous logger: console, RollingFile

My sample code (JAX-RS Filter):

import java.io.IOException;

import javax.annotation.Priority;
import javax.inject.Inject;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.ext.Provider;

import org.glassfish.grizzly.http.server.Request;
import org.slf4j.LoggerFactory;

public class GrizzlyRequestFilter implements ContainerRequestFilter {

    javax.inject.Provider< Request > provider;

    public void filter( ContainerRequestContext requestContext ) throws 
IOException {

        Request request = this.provider.get();

        Thread thread = Thread.currentThread();

        thread.setName( request.getRemoteHost() + '/' + thread.getId() );
        // oops: logger thread name != expected
            .info( "expected thread name:" + request.getRemoteHost() + '/' + 
thread.getId() );

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to