Description:
|
LogbackMDCAdapter.get(String key) returns NULL, after Thread.sleep(..).
Code example:
package test.test.testLogger12;
import java.util.concurrent.ExecutorService;
.....
public class LoggerTest {
...
public void init()
{
......
System.out.println("I'm here");
logger.info(0, "TestLogger started");
logger.addThreadContext("MyLoggerContext");
ExecutorService nativExecutor = executorService.allocateAndGetExecutorService("AA", ExecutorPlatformType.JAVA, ExecutorType.THREAD_POOL, 5, 11, 5, 1000);
nativExecutor.execute(new NativeRunnable(loggerApi));
nativExecutor.execute(new NativeRunnable(loggerApi));
nativExecutor.execute(new NativeRunnable(loggerApi));
nativExecutor.execute(new NativeRunnable(loggerApi));
nativExecutor.execute(new NativeRunnable(loggerApi));
}
//////////////////////////runnables////////////////////////////
private static int threadCounter = 0;
public static class NativeRunnable implements Runnable {
private ILogger logger;
public NativeRunnable(LoggerApi loggerApi)
{
logger = loggerApi.getLogger();
}
public void run() {
logger.addThreadContext("NATIVE_WORKER "threadCounter+);
logger.info(0, "NATIVE PHOENIX IN");
try
{
Thread.sleep(10);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
finally
{
logger.info(0, "NATIVE PHOENIX OUT");
logger.removeThreadContext();
}
}
}
}
Output example:
2013-08-05 18:58:15.431 +0300, I, AA-thread-1, testLogger12.testLogger12-business-logic, NATIVE_WORKER 5, NATIVE Alona PHOENIX IN
2013-08-05 18:58:15.431 +0300, I, AA-thread-3, testLogger12.testLogger12-business-logic, NATIVE_WORKER 6, NATIVE Alona PHOENIX IN
2013-08-05 18:58:15.431 +0300, I, AA-thread-2, testLogger12.testLogger12-business-logic, NATIVE_WORKER 7, NATIVE Alona PHOENIX IN
2013-08-05 18:58:15.431 +0300, I, AA-thread-4, testLogger12.testLogger12-business-logic, NATIVE_WORKER 8, NATIVE Alona PHOENIX IN
2013-08-05 18:58:15.431 +0300, I, AA-thread-5, testLogger12.testLogger12-business-logic, NATIVE_WORKER 9, NATIVE Alona PHOENIX IN
2013-08-05 18:58:15.443 +0300, I, AA-thread-1, testLogger12.testLogger12-business-logic, NATIVE_WORKER 9, NATIVE Alona PHOENIX OUT
2013-08-05 18:58:15.443 +0300, I, AA-thread-3, testLogger12.testLogger12-business-logic, NATIVE Alona PHOENIX OUT
2013-08-05 18:58:15.443 +0300, I, AA-thread-2, testLogger12.testLogger12-business-logic, NATIVE Alona PHOENIX OUT
2013-08-05 18:58:15.443 +0300, I, AA-thread-4, testLogger12.testLogger12-business-logic, NATIVE Alona PHOENIX OUT
2013-08-05 18:58:15.444 +0300, I, AA-thread-5, testLogger12.testLogger12-business-logic, NATIVE Alona PHOENIX OUT
The context key is : NATIVE_WORKER #
{number}
, when thread is out it is absent!
Thank you,
Alona
|