Repository: logging-log4j2 Updated Branches: refs/heads/master b988cab62 -> 7c629a6af
Document how ListAppender.countDownLatch can be used for asynchronous logging tests Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/7c629a6a Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/7c629a6a Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/7c629a6a Branch: refs/heads/master Commit: 7c629a6af85b7146df15d19ba07a83efbf81e9c7 Parents: b988cab Author: rpopma <[email protected]> Authored: Sun Nov 13 15:55:36 2016 +0900 Committer: rpopma <[email protected]> Committed: Sun Nov 13 15:55:36 2016 +0900 ---------------------------------------------------------------------- .../log4j/test/appender/ListAppender.java | 28 +++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7c629a6a/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java b/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java index da36e59..418a916 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java @@ -41,7 +41,7 @@ import org.apache.logging.log4j.core.layout.SerializedLayout; /** * This appender is primarily used for testing. Use in a real environment is discouraged as the * List could eventually grow to cause an OutOfMemoryError. - * + * * This appender is not thread-safe. * * This appender will use {@link Layout#toByteArray(LogEvent)}. @@ -65,6 +65,32 @@ public class ListAppender extends AbstractAppender { private static final String WINDOWS_LINE_SEP = "\r\n"; + /** + * CountDownLatch for asynchronous logging tests. Example usage: + * <pre> + * @Rule + * public LoggerContextRule context = new LoggerContextRule("log4j-list.xml"); + * private ListAppender listAppender; + * + * @Before + * public void before() throws Exception { + * listAppender = context.getListAppender("List"); + * } + * + * @Test + * public void testSomething() throws Exception { + * listAppender.countDownLatch = new CountDownLatch(1); + * + * Logger logger = LogManager.getLogger(); + * logger.info("log one event anynchronously"); + * + * // wait for the appender to finish processing this event (wait max 1 second) + * listAppender.countDownLatch.await(1, TimeUnit.SECONDS); + * + * // now assert something or do follow-up tests... + * } + * </pre> + */ public CountDownLatch countDownLatch = null; public ListAppender(final String name) {
