如何在 java 配置中使用 log4 创建具有不同内容的不同日志文件

How create diferents log File with different content using log4 in java configuration

我正在使用 spring batch 并且我需要创建 different 日志文件一个作业日志,因为我访问外部属性文件,我需要在 java code 中创建配置日志。我的配置是

ConsoleAppender console = new ConsoleAppender();
    console.setLayout(new PatternLayout(stdoutConversionPattern));
    console.setThreshold(Level.INFO);
    console.activateOptions();
    Logger.getRootLogger().addAppender(console);

    // FICHERO: FileAppender1.LOG CONTENDRA LA INFROMACION DE LA EJECUCION DEL FileAppender1
        RollingFileAppender FileAppender1Appender = new RollingFileAppender();
        FileAppender1Appender.setName("FileAppender1Logger");
        FileAppender1Appender.setFile(FileAppender1File);
        FileAppender1Appender.setLayout(new PatternLayout(FileAppender1ConversionPattern));
        FileAppender1Appender.setAppend(true);
        FileAppender1Appender.setMaxBackupIndex(FileAppender1MaxBackup);
        FileAppender1Appender.setMaxFileSize(FileAppender1MaxFileSize);
        FileAppender1Appender.activateOptions();
        Logger.getRootLogger().addAppender(FileAppender1Appender);

    // FICHERO: FileAppender2.LOG CONTENDRA LA INFROMACION DE LA EJECUCION DEL FileAppender2
        RollingFileAppender FileAppender2Appender = new RollingFileAppender();
        FileAppender2Appender.setName("FileAppender2Logger");
        FileAppender2Appender.setFile(FileAppender2File);
        FileAppender2Appender.setLayout(new PatternLayout(FileAppender2ConversionPattern));
        FileAppender2Appender.setAppend(true);
        FileAppender2Appender.setMaxBackupIndex(FileAppender2MaxBackup);
        FileAppender2Appender.setMaxFileSize(FileAppender2MaxFileSize);
        FileAppender2Appender.activateOptions();
        Logger.getRootLogger().addAppender(FileAppender2Appender);

        Logger.getRootLogger().setAdditivity(false);
        properties.put("logging.file", FileAppender2File);

然后我写:

static final Logger FileAppender1Log = LogManager.getLogger("FileAppender1Logger");
static final Logger FileAppender1Log = LogManager.getLogger("FileAppender2Logger");

但是 Always logger write en all logs files when I want have differents logger one log for job 对不起我的英语,不是我的母语,谢谢

您正在将两个 appender 添加到 Root 配置,这就是它无法区分不同记录器的原因。您应该将 appender 添加到您感兴趣的 Logger,如下所示

Logger.getLogger("FileAppender1Logger").addAppender(FileAppender1Appender);
Logger.getLogger("FileAppender2Logger").addAppender(FileAppender2Appender);