diff --git a/impl/core/src/test/java/logger/LoggerTest.java b/impl/core/src/test/java/logger/LoggerTest.java
new file mode 100644
index 0000000..4873fd3
--- /dev/null
+++ b/impl/core/src/test/java/logger/LoggerTest.java
@@ -0,0 +1,83 @@
+/*
+ * Demoiselle Framework
+ * Copyright (C) 2010 SERPRO
+ * ----------------------------------------------------------------------------
+ * This file is part of Demoiselle Framework.
+ *
+ * Demoiselle Framework is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License version 3
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License version 3
+ * along with this program; if not, see
+ * or write to the Free Software Foundation, Inc., 51 Franklin Street,
+ * Fifth Floor, Boston, MA 02110-1301, USA.
+ * ----------------------------------------------------------------------------
+ * Este arquivo é parte do Framework Demoiselle.
+ *
+ * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou
+ * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação
+ * do Software Livre (FSF).
+ *
+ * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
+ * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou
+ * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português
+ * para maiores detalhes.
+ *
+ * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título
+ * "LICENCA.txt", junto com esse programa. Se não, acesse
+ * ou escreva para a Fundação do Software Livre (FSF) Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
+ */
+package logger;
+
+import static junit.framework.Assert.assertTrue;
+
+import javax.inject.Inject;
+
+import logger.appender.LoggerMemory;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.slf4j.Logger;
+
+import test.Tests;
+
+@RunWith(Arquillian.class)
+public class LoggerTest {
+
+ private static final String LOGGER_MESSAGE = "Testing log4j proxy";
+
+ @Inject
+ private Logger logger;
+
+ @Inject
+ private LoggerMemory loggerMemory;
+
+ @Deployment
+ public static JavaArchive createDeployment() {
+
+ JavaArchive deployment = Tests.createDeployment(LoggerTest.class);
+
+ return deployment;
+
+ }
+
+ @Test
+ public void testLoggerProducer() {
+
+ logger.info(LOGGER_MESSAGE);
+
+ assertTrue(loggerMemory.checkMessage(LOGGER_MESSAGE));
+
+ }
+
+}
diff --git a/impl/core/src/test/java/logger/appender/LoggerMemory.java b/impl/core/src/test/java/logger/appender/LoggerMemory.java
new file mode 100644
index 0000000..f0214bc
--- /dev/null
+++ b/impl/core/src/test/java/logger/appender/LoggerMemory.java
@@ -0,0 +1,56 @@
+package logger.appender;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.slf4j.Logger;
+
+public class LoggerMemory {
+
+ @Inject
+ private Logger logger;
+
+ private static List messages = new ArrayList();
+
+ public boolean checkMessage(String loggerMessage) {
+
+ logger.info("Verificando a mensagem [" + loggerMessage + "]");
+ this.showMessages();
+
+ for (String mensagem : messages) {
+
+ if (mensagem.equals(loggerMessage)) {
+
+ logger.info("Mensagem encontrada");
+ return true;
+
+ }
+
+ }
+
+ logger.info("Mensagem não encontrada");
+ return false;
+
+ }
+
+ private void showMessages() {
+
+ logger.debug("Inicio da listagem de mensagens armazenadas...");
+ for (String message : messages) {
+
+ logger.debug("\"" + message + "\"");
+
+ }
+ logger.debug("Fim da listagem de mensagens armazenadas...");
+
+ }
+
+ public static void addMessage(String mensagem) {
+
+ messages.add(mensagem);
+
+ }
+
+}
diff --git a/impl/core/src/test/java/logger/appender/MemoryAppender.java b/impl/core/src/test/java/logger/appender/MemoryAppender.java
new file mode 100644
index 0000000..6af4a72
--- /dev/null
+++ b/impl/core/src/test/java/logger/appender/MemoryAppender.java
@@ -0,0 +1,28 @@
+package logger.appender;
+
+import org.apache.log4j.AppenderSkeleton;
+import org.apache.log4j.spi.LoggingEvent;
+
+public class MemoryAppender extends AppenderSkeleton {
+
+ @Override
+ public void close() {
+ }
+
+ @Override
+ public boolean requiresLayout() {
+ return false;
+ }
+
+ @Override
+ protected void append(LoggingEvent loggingEvent) {
+
+ if (!LoggerMemory.class.getName().equals(loggingEvent.getLoggerName())) {
+
+ LoggerMemory.addMessage(loggingEvent.getMessage().toString());
+
+ }
+
+ }
+
+}
diff --git a/impl/core/src/test/resources/log4j.properties b/impl/core/src/test/resources/log4j.properties
index 48a89ba..369e6a1 100755
--- a/impl/core/src/test/resources/log4j.properties
+++ b/impl/core/src/test/resources/log4j.properties
@@ -40,3 +40,7 @@ log4j.logger.br.gov.frameworkdemoiselle=TRACE
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p [%c{1}] %m%n
+
+# Custom Appender to log4j that holds messages in memory
+log4j.logger.logger=TRACE, MEMORYAPPENDER
+log4j.appender.MEMORYAPPENDER=logger.appender.MemoryAppender
--
libgit2 0.21.2