Я неопытный разработчик Java, пишущий приложение для резервного копирования.
Мое приложение открывает графический интерфейс (StepTwoBackup, написанный с использованием шаблона NetBeans), который собирает некоторую информацию от пользователя, затем, когда я нажимаю кнопку «Далее», графический интерфейс передает эту информацию объекту (BackupRestore, который регистрирует всю операцию с помощью Log4J ), а затем открывает другое окно (StepThreeBackup) и передает в него объект.
В этом новом окне (StepThreeBackup) я автоматически запускаю метод для переданного объекта (BackupRestore.execute()), который выполняет резервное копирование. В этом последнем окне (StepThreeBackup) я создал JTextArea, где я хотел бы показать вывод Log4J (который в настоящее время записывает в файл журнала и выводит на консоль).
Есть ли способ сделать это? Я читал, что я должен использовать приложение, но не могу понять, как это сделать правильно.
На данный момент я создал следующую запись в моем рабочем файле свойств Log4J:
<appender name="guiAppender" class="BackupAppGui.StatusMessageAppender">
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n"/>
</layout>
</appender>
Затем следующий класс в моем пакете (после другого поста):
пакет BackupAppGui;
/**
*
* @author MSTPA
*/
import javax.swing.JTextArea;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.Level;
import org.apache.log4j.spi.LoggingEvent;
public class StatusMessageAppender extends AppenderSkeleton {
private final JTextArea jTextA;
public StatusMessageAppender() {
jTextA = StepThreeBackup.getJTextA();
}
protected void append(LoggingEvent event)
{
if(event.getLevel().equals(Level.INFO)){
jTextA.append(event.getMessage().toString());
}
}
public void close()
{
}
public boolean requiresLayout()
{
return false;
}
}
Но ничего не записывается в jTextArea.
Что я делаю неправильно? Может ли кто-нибудь помочь мне решить это? Спасибо за всю помощь, которую вы можете мне оказать.