Java 如何在log4j.properties文件中共同化appenders属性?

Java 如何在log4j.properties文件中共同化appenders属性?,java,log4j,Java,Log4j,我有一个log4j.properties文件,其中我必须定义12个不同的appender。事实上,除了名称和文件属性之外,所有这些追加器都是相似的。 我有这样的想法: log4j.logger.FOO=DEBUG, fileFOO log4j.appender.fileFOO=org.apache.log4j.RollingFileAppender log4j.appender.fileFOO.File=/some/path/file-FOO.log log4j.appender.fileFOO

我有一个
log4j.properties
文件,其中我必须定义12个不同的appender。事实上,除了名称和
文件
属性之外,所有这些追加器都是相似的。 我有这样的想法:

log4j.logger.FOO=DEBUG, fileFOO
log4j.appender.fileFOO=org.apache.log4j.RollingFileAppender
log4j.appender.fileFOO.File=/some/path/file-FOO.log
log4j.appender.fileFOO.MaxFileSize=5MB
log4j.appender.fileFOO.MaxBackupIndex=20
log4j.appender.fileFOO.layout=org.apache.log4j.PatternLayout
log4j.appender.fileFOO.layout.ConversionPattern=%d %-5p ~ %m%n

log4j.logger.BAR=DEBUG, fileBAR
log4j.appender.fileBAR=org.apache.log4j.RollingFileAppender
log4j.appender.fileBAR.File=/some/path/file-BAR.log
log4j.appender.fileBAR.MaxFileSize=5MB
log4j.appender.fileBAR.MaxBackupIndex=20
log4j.appender.fileBAR.layout=org.apache.log4j.PatternLayout
log4j.appender.fileBAR.layout.ConversionPattern=%d %-5p ~ %m%n
如您所见,除了
log4j.logger.X
log4j.appender.fileX.File

是否有一种方法可以定义附加器的其他属性(
MaxFileSize
MaxBackupIndex
layout
,等等)的默认值,类似于附加器的“继承”


谢谢

尝试实现自定义默认的
Appender
,然后改用它
RollingFileAppender

log4j.logger.FOO=DEBUG, fileFOO
log4j.appender.fileFOO=me.project.MyRollingFileAppender
log4j.appender.fileFOO.File=/some/path/file-FOO.log


谢谢你的回答,这将是我的首选解决方案。然而,我使用的是PlayFrameworkV1,在启动期间,我似乎无法让log4j加载我自己的类(由于一个bug:),我不想为此创建一个JAR库。无论如何,谢谢你:)
public class MyRollingFileAppender extends RollingFileAppender {

  public MyRollingFileAppender() {
    super();
    init();
  }

  public MyRollingFileAppender(Layout layout, String filename) throws IOException {
    super(layout, filename);
    init();
  }

  public MyRollingFileAppender(Layout layout, String filename, boolean append)
      throws IOException {
    super(layout, filename, append);
    init();
  }

  private void init() {
    this.setMaxFileSize("5MB");
    this.setMaxBackupIndex(20);
    this.setLayout( new PatternLayout("%d %-5p ~ %m%n"));
  }
}