将自定义属性添加到log4j.properties文件-java
我想将我的属性添加到log4j.properties文件中。 porpety被称为maxEvent,我是这样做的:将自定义属性添加到log4j.properties文件-java,java,log4j,Java,Log4j,我想将我的属性添加到log4j.properties文件中。 porpety被称为maxEvent,我是这样做的: 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.ap
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
当我在代码(int NewLog.java)中访问maxEvents时,它不会从log4j.properties文件中获取它
编辑
在log4j文件中,我有以下方法:
public
void setMaxEvents(int maxEvents) {
this.maxEvents = maxEvents;
}
public
int getMaxEvents() {
return maxEvents;
}
编辑2:
新日志的完整代码:
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;
}
}
package com.common.log;
导入org.apache.log4j.Priority;
导入org.apache.log4j.spi.LoggingEvent;
导入org.apache.log4j.RollingFileAppender;
导入java.util.ArrayList;
公共类NewLog扩展RollingFileAppender{
私人通讯录记录事件;
private int maxEvents=1;//默认值
公众的
NewLog(){
超级();
loggingEvents=新的CircularAryList(getMaxEvents());
}
@凌驾
受保护的
无效子附件(记录事件){
超级子外观(事件);
}
公众的
void setMaxEvents(int-maxEvents){
this.maxEvents=maxEvents;
}
公众的
int getMaxEvents(){
返回maxEvents;
}
}
类NewLog必须具有getMaxEvents和setMaxEvents方法
另外,在属性文件中使用#进行如下注释:
#my property
log4j.appender.m.MaxEvents=3
不用
log4j.appender.m.MaxEvents=3 //my property
appender将尝试将MaxEvents设置为字符串“3//my property”我有…elese?适合我的东西。至少如果我把调试点放在setter中。您尝试在何处/如何使用此属性?是否有//我的属性注释?然后得到字符串,而不是int。当应该调用“setMaxBackupEvents()”时,使用#在属性文件中进行注释?这是您的问题。在设置MaxEvents之前调用构造函数。