mercredi 6 juillet 2016

log4j DailyRollingFileAppender not adding footer

My goal is to use log4j to roll (json-formatted) messages into a log file and make the resulting log file a json-valid structure as a result. What I currently have in log4j.properties is:

log4j.rootLogger=INFO, FILE
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.Append=true
log4j.appender.FILE.File=out.log
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.FILE.layout=com.foobar.CustomLayout
log4j.appender.FILE.layout.ConversionPattern=%m,%n

Where CustomLayout looks like:

class CustomLayout extends PatternLayout {

    @Override
    String getHeader() {
        return "[n"
    }

    @Override
    String getFooter() {
        return "{}n]"
    }
}

However, at the end of my execution, all my files are not json-valid because they are left without a closing bracket, ie:

[
{},
{},

Any ideas on how to fix this issue and make every rolled file include header and footer that I have defined in CustomLayout?

Aucun commentaire:

Enregistrer un commentaire