Am обрабатывает файлы с помощью java, для обработки файлов есть 2 или 3 компонента Java. Мое требование состоит в том, чтобы файл должен иметь файл журнала, а его данные обработки будут регистрироваться в соответствующем файле журнала.Java Logger with Log4j
Проблема заключается в том, что один файл работает хорошо, но с несколькими файлами am возникают проблемы. Когда несколько файлов становятся обработаны регистратор регистрирует деталь журнала журналов FILE1.TXT в file2.log вместо File1.log ...
public Class FileProcessComponent1
{
public void process(String fileName)
{
Logger Log = Logg.getLogger1(fileName,this.getClass());
log.info("file1 logging");
}
}
public Class FileProcessComponent2
{
public void process(String fileName)
{
Logger Log = Logg.getLogger1(fileName,this.getClass());
log.info("file1 logging");
}
}
public Class Logg
{
public static Logger getLogger1(String fileName,Class clazz) throws Exception
{
if(fileName == null || "".equals(fileName.trim()))
throw new Exception("File Name or Map for File Name is Null");
fileName = "/home/logs/"+fileName+".log";
Logger logger = Logger.getLogger(clazz.getCanonicalName()+":"+System.nanoTime());
logger.setAdditivity(false);
FileAppender appender = new DailyRollingFileAppender(new PatternLayout("%d{ISO8601}\t%p\t%c\t%m%n"), fileName, "'.'yyyy-MM-dd");
logger.addAppender(appender);
logger.setLevel(Level.DEBUG);
return logger;
}
}
Ваши два компонента передают одно и то же имя файла («file1») в 'getLogger1()'. Не удивительно, что они оба пишут в тот же файл. –
да оба используют одно и то же имя файла – sunleo
Итак, каков ваш вопрос? Вы хотите, чтобы они писали разные файлы, но вы всегда передаете одно и то же имя файла. Поэтому, очевидно, все они пишут в один и тот же файл. Передайте другое имя файла, чтобы записать в другой файл. –