You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Rainer Schnitker (JIRA)" <ji...@apache.org> on 2016/09/16 12:49:20 UTC
[jira] [Created] (LOG4J2-1588) Console or File Logger caches thread
name, but not in older log4j2 versions
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;
@Provider
@Priority(Integer.MIN_VALUE)
public class GrizzlyRequestFilter implements ContainerRequestFilter {
@Inject
javax.inject.Provider< Request > provider;
@Override
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
LoggerFactory.getLogger(GrizzlyRequestFilter.class)
.info( "expected thread name:" + request.getRemoteHost() + '/' + thread.getId() );
}
}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org