[logback-user] Buffered Appender?

Ceki Gulcu listid at qos.ch
Fri Aug 15 20:42:00 CEST 2008



There is some info on markers at http://logback.qos.ch/demo.html

Here is the general structure I had in mind.

package ch.qos.logback.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.Marker;
import org.slf4j.MarkerFactory;

public class MarkerExample {

    static Marker START = MarkerFactory.getMarker("START_SECTION");
    static Marker STOP = MarkerFactory.getMarker("STOP_SECTION");
    Logger logger = LoggerFactory.getLogger(MarkerExample .class);

    public void aMethod() {
      logger.info(START, "Hello world");
      doSomething();
      logger.debug("Just did something");
      try {
       doSomethingElse();
      } catch(Exception e) {
        logger.debug("that did not go so well...", e);
      }
      logger.info(STOP, "that's it folks");
    }

}

In your appender, you would start buffering when you saw a START_SECTION marker 
and throw away your buffer as soon as you saw a STOP_SECTION marker unless an 
error occurred. Outside of a section, you would log normally.

Does this help?

Eric Faden wrote:
> Interesting.  Is there an example of this somewhere?
> 
> -Eric
> 
> Ceki Gulcu wrote:
>> Hello Eric,
>>
>> The logback and log4j share the same basic architecture. In principle, anything 
>> you can do in log4j you can do in logback. Rewriting a log4j appender in logback 
>> should be a 15 minute endeavor.
>>
>> You can take advantage of logback markers so that you can mark the begging and 
>> an end of a section (however long). If the section end without any errors you 
>> ditch the buffered events. Otherwise, if an error occurs, you log them.
>>
>> This is very similar to your test function, except that markers give you a way 
>> to indicate the start and the end of buffering.
>>
>> Cheers,
>>
-- 
Ceki Gülcü


More information about the Logback-user mailing list