Hi everybody !

For my e-commerce app on GAE, I wanted to use logback but, like everybody 
know, that solution doesn't display the correct log levels in the console.

So I've written a logback appender (based on 
http://androidisland.blogspot.com/2010/10/gae-and-log4j-getting-them-to-work-bit.html)
 
which passes on logback severity levels to GAE's JUL framework.

You probably should not use the JUL configuration and let it as simple as it 
can (logging.properties) :

logback.level = ALL


Here is the convenient appender :

public class GAELogAppender extends AppenderBase<ILoggingEvent> {
    private static final Logger log = Logger.getLogger("logback");
    PatternLayoutEncoder encoder;

    public GAELogAppender() {
    }

    @Override
    protected void append(ILoggingEvent event) {

    Level level = event.getLevel();

    //To optimize, reorder according to how often levels are hit
    if (level.equals(Level.ERROR))
        log.severe(encoder.getLayout().doLayout(event));
    else if (level.equals(Level.WARN))
        log.warning(encoder.getLayout().doLayout(event));
    else if (level.equals(Level.INFO))
        log.info(encoder.getLayout().doLayout(event));
    else if (level.equals(Level.DEBUG))
        log.fine(encoder.getLayout().doLayout(event));
    else
        // if (level.equals(Level.TRACE))
        log.finest(encoder.getLayout().doLayout(event));

    }

    public PatternLayoutEncoder getEncoder() {
        return encoder;
    }

    public void setEncoder(PatternLayoutEncoder encoder) {
        this.encoder = encoder;
    }
}


And configure log with logback xml file. Here is a snippet of code :

<configuration debug="true" scan="true">
    <appender name="JULAppender" class="my.package.GAELogAppender">
        <encoder>
            <pattern>%date{dd/MM/yyyy HH:mm:ss} %level %logger:%line - 
%message%n</pattern>
        </encoder>
    </appender>

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

 
I think it can help other people and I'd love to hear some feedback or way 
to improve it. ;)

Regards,

Simon Debaecke

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to