Index: jackrabbit-core/src/test/resources/logback-test.xml
===================================================================
--- jackrabbit-core/src/test/resources/logback-test.xml	(revision 981761)
+++ jackrabbit-core/src/test/resources/logback-test.xml	(working copy)
@@ -24,10 +24,26 @@
     </encoder>
   </appender>
 
+  <appender name="sift" class="ch.qos.logback.classic.sift.SiftingAppender">
+    <discriminator>
+      <Key>testclass</Key>
+      <DefaultValue>junit</DefaultValue>
+    </discriminator>
+    <sift>
+      <appender name="FILE-${testname}" class="ch.qos.logback.core.FileAppender">
+        <File>target/surefire-reports/${testclass}.log</File>
+        <layout class="ch.qos.logback.classic.PatternLayout">
+          <Pattern>%date{HH:mm:ss.SSS} %-5level %-40([%thread] %F:%L) %msg%n</Pattern>
+        </layout>
+      </appender>
+    </sift>
+  </appender>
+
   <logger name="org.apache.jackrabbit.test" level="DEBUG"/>
 
   <root level="INFO">
     <appender-ref ref="file"/>
+    <appender-ref ref="sift"/>
   </root>
 
 </configuration>
Index: jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/JUnitTest.java
===================================================================
--- jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/JUnitTest.java	(revision 981761)
+++ jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/JUnitTest.java	(working copy)
@@ -18,6 +18,7 @@
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
 
 import junit.framework.TestCase;
 
@@ -29,11 +30,25 @@
     /**
      * Logger instance for test cases
      */
-    private static final Logger logger = LoggerFactory.getLogger(JUnitTest.class);
+    protected final Logger logger = LoggerFactory.getLogger(getClass());
 
     /**
      * Output stream for general messages from tests.
      */
     public final LogPrintWriter log = new LogPrintWriter(logger);
 
+    protected void setUp() throws Exception {
+        super.setUp();
+        MDC.put("testclass", getClass().getName());
+        MDC.put("testcase", getName());
+        logger.info("Starting test case {}", getName());
+    }
+ 
+    protected void tearDown() throws Exception {
+        logger.info("Completed test case {}", getName());
+        MDC.remove("testcase");
+        MDC.remove("testclass");
+        super.tearDown();
+    }
+
 }
