I want to add my property to the log4j.properties file. the porpety is call maxEvent and i do it like this :

log4j.appender.m=NewLog
log4j.appender.m.File=m.log
log4j.appender.m.layout=org.apache.log4j.PatternLayout
log4j.appender.m.layout.ConversionPattern=%d{ISO8601} | %-5.5p %C(%L) | %m%n
log4j.appender.m.MaxFileSize=10MB
log4j.appender.m.MaxBackupIndex=5
#my property
log4j.appender.m.MaxEvents=3

when i access maxEvents in my code(int NewLog.java), it doesn't take it from the log4j.properties file

EDIT

in log4j file I have those methods:

public
void setMaxEvents(int maxEvents) {
    this.maxEvents = maxEvents;
}

public
int getMaxEvents() {
    return maxEvents;
}

EDIT 2: full code og newlog:

package com.common.log;


import org.apache.log4j.Priority;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.RollingFileAppender;


import java.util.ArrayList;

public class NewLog extends RollingFileAppender {


private circularArrayList<LoggingEvent> loggingEvents;


 private int maxEvents = 1; //default

public
NewLog() {
    super();
    loggingEvents = new circularArrayList<>(getMaxEvents());
}



  @Override
    protected
    void subAppend(LoggingEvent event) {

             super.subAppend(event);

    }



    public
    void setMaxEvents(int maxEvents) {
        this.maxEvents = maxEvents;
    }

    public
    int getMaxEvents() {
        return maxEvents;
    }

}
有帮助吗?

解决方案

Class NewLog must have getMaxEvents and setMaxEvents methods.

Also, use # to comment in properties file like this:

#my property
log4j.appender.m.MaxEvents=3

Dont use

 log4j.appender.m.MaxEvents=3 //my property

appender will try to set MaxEvents to String "3 //my property"

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top