[logback-user] Delete log file

Ceki Gulcu ceki at qos.ch
Thu Nov 18 17:18:51 CET 2010


Hi Patrick,

Sifting appender could probably help. Here is a sample config file:

<configuration>
   <statusListener
         class="ch.qos.logback.core.status.OnConsoleStatusListener" />

   <appender name="SIFT"
             class="ch.qos.logback.classic.sift.SiftingAppender">
     <discriminator>
       <key>testname</key>
       <defaultValue>unknown</defaultValue>
     </discriminator>
     <sift>
       <appender name="FILE-${testname}"
                 class="ch.qos.logback.core.FileAppender">
         <file>${testname}.log</file>
         <append>false</append>
         <encoder>
             <pattern>%d %level %mdc %logger{35} - %msg%n</pattern>
         </encoder>
       </appender>
     </sift>
   </appender>

   <root level="DEBUG">
     <appender-ref ref="SIFT" />
   </root>
</configuration>


At the beginning each test, you need to set the test's anme in the MDC. 
For eaxmple,


public class MyTest {

    Logger logger = LoggerFactory.getLogger(Foo.class);

    @Before
    public void setUp() {
       MDC.put("testname", "myTest");
    }

    @Test a() {
       logger.info("a says hello");
       ...
    }

    @Test b() {
       logger.info("b says hello");
       ...
    }
}

public class MyOtherTest {

    Logger logger = LoggerFactory.getLogger(Foo.class);

    @Before
    public void setUp() {
       MDC.put("testname", "MyOtherTest");
    }

    @Test x() {
       logger.info("a says hello");
       ...
    }
}


Let us know if it works...

--
Ceki

On 18.11.2010 17:01, pwillems66 at zonnet.nl wrote:
> Hi,
>
> The prudent propertie doesn't work. Any other idea?
> It looks like the log file is in use. Is their a way to
> 'unlock' that use by code?
>
> This is what I must realize:
> For every test I need to create a log file. When the same test start
> again the previous file must be deleted (or renamed and delete
> thereafter) and a new one created. Also (test is not running) it must be
> possible to delete the log file.
>
> -Patrick



More information about the Logback-user mailing list