如何在 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);
我正在使用 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);