Skip to content
Snippets Groups Projects
Commit c215f62b authored by brinn's avatar brinn
Browse files

Allow logging of successful calls.

SVN: 27122
parent b59c5025
No related branches found
No related tags found
No related merge requests found
......@@ -62,6 +62,12 @@ public final class ConcurrencyUtilities
* Returns the log level to be used in error logging.
*/
LogLevel getLogLevelForError();
/**
* Returns the log level to be used in successful operation (return {@link LogLevel#OFF} to
* switch off logging for successful operation).
*/
LogLevel getLogLevelForSuccess();
}
/**
......@@ -358,6 +364,14 @@ public final class ConcurrencyUtilities
return ExecutionResult.createTimedOut();
} else
{
if (logSettingsOrNull != null
&& logSettingsOrNull.getLogLevelForSuccess() != LogLevel.OFF)
{
logSettingsOrNull.getLogger().log(
logSettingsOrNull.getLogLevelForSuccess(),
String.format("%s: call returns %s.", logSettingsOrNull
.getOperationName(), result.tryGetResult()));
}
return result;
}
} catch (InterruptedException ex)
......
......@@ -66,7 +66,7 @@ public class ConcurrencyUtilitiesTest
public void beforeMethod()
{
logger = new AssertingLogger();
createLogSettings(LogLevel.WARN);
createLogSettings(LogLevel.WARN, LogLevel.OFF);
}
@AfterClass
......@@ -75,14 +75,14 @@ public class ConcurrencyUtilitiesTest
Thread.interrupted();
}
private void createLogSettings(final LogLevel level)
private void createLogSettings(final LogLevel levelForError, final LogLevel levelForSuccess)
{
logSettings = new ILogSettings()
{
@Override
public LogLevel getLogLevelForError()
{
return level;
return levelForError;
}
@Override
......@@ -96,6 +96,12 @@ public class ConcurrencyUtilitiesTest
{
return name;
}
@Override
public LogLevel getLogLevelForSuccess()
{
return levelForSuccess;
}
};
}
......@@ -123,6 +129,7 @@ public class ConcurrencyUtilitiesTest
@Test
public void testGetExecutionResultOK()
{
createLogSettings(LogLevel.ERROR, LogLevel.INFO);
final String valueProvided = "This is the execution return value";
final ThreadPoolExecutor eservice =
new NamingThreadPoolExecutor(name).corePoolSize(1).maximumPoolSize(2);
......@@ -140,7 +147,8 @@ public class ConcurrencyUtilitiesTest
assertNull(result.tryGetException());
assertEquals(valueProvided, result.tryGetResult());
assertTrue(future.isDone());
logger.assertNumberOfMessage(0);
logger.assertNumberOfMessage(1);
logger.assertEq(0, LogLevel.INFO, name + ": call returns " + valueProvided + ".");
}
@Test
......@@ -273,7 +281,7 @@ public class ConcurrencyUtilitiesTest
@Test(groups = "slow")
public void testGetExecutionResultTimeoutWithoutCancelation()
{
createLogSettings(LogLevel.INFO);
createLogSettings(LogLevel.INFO, LogLevel.OFF);
final ThreadPoolExecutor eservice =
new NamingThreadPoolExecutor(name).corePoolSize(1).maximumPoolSize(2);
final Future<String> future = eservice.submit(new Callable<String>()
......@@ -380,7 +388,7 @@ public class ConcurrencyUtilitiesTest
@Test
public void testGetExecutionResultInterrupted()
{
createLogSettings(LogLevel.DEBUG);
createLogSettings(LogLevel.DEBUG, LogLevel.OFF);
final ThreadPoolExecutor eservice =
new NamingThreadPoolExecutor(name).corePoolSize(1).maximumPoolSize(2);
final Thread thread = Thread.currentThread();
......@@ -437,7 +445,7 @@ public class ConcurrencyUtilitiesTest
@Test
public void testGetExecutionResultException()
{
createLogSettings(LogLevel.ERROR);
createLogSettings(LogLevel.ERROR, LogLevel.OFF);
final ThreadPoolExecutor eservice =
new NamingThreadPoolExecutor(name).corePoolSize(1).maximumPoolSize(2);
final Future<String> future = eservice.submit(new Callable<String>()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment