Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
3 / 3 / 0
Регистрация: 18.03.2014
Сообщений: 95

Logger Appender-как перенаправить из Вывода в JTextPane?

24.05.2014, 17:32. Показов 2176. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня.Возник крайне сложный(Для меня) вопрос-Как с помощью класса Logger Appender перенаправить все что выводится в консоль("Вывод" в NetBeans) допустим в JTextPane?
Нигде не нашел примера как это делается.
Или вообще пример использования Logger Appender.

Добавлено через 1 час 57 минут
Help me please!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.05.2014, 17:32
Ответы с готовыми решениями:

Не удаётся перенаправить потоки вывода буферного консольного приложения
Доброго времени суток. Стоит задача: Есть программа, которая запускает консольное приложение с какими-то аргументами, чем-то с ним...

Как распечатать текст из JTextPane?
Привет. Уже неделю мучаюсь... Не как не могу понять как распечатать из JTextPane текст? Мне не надо с стилями. Простой...

JTextPane и как у него с Linewarp'ом
Привет... КАк у JTExtPane сделать чтобы он не переводил текст на новую строку а продолжал дальше???

3
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
24.05.2014, 19:56
Java_people, Вы про какую библиотеку логирования говорите? log4j, logback, jcl?
0
3 / 3 / 0
Регистрация: 18.03.2014
Сообщений: 95
24.05.2014, 21:40  [ТС]
turbanoff, log4j
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
24.05.2014, 23:20
Создаем свой аппендер, чтобы он писал в JTextPane:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.spi.LoggingEvent;
 
import javax.swing.*;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
 
public class TextPaneAppender extends AppenderSkeleton {
    private final Document document;
 
    public TextPaneAppender(JTextPane textPane) {
        document = textPane.getDocument();
    }
 
    @Override
    protected void append(final LoggingEvent event) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    document.insertString(document.getLength(), event.getRenderedMessage() + "\n", null);
                } catch (BadLocationException e) {
                    throw new RuntimeException(e);
                }
            }
        });
    }
 
    @Override
    public void close() {
    }
 
    @Override
    public boolean requiresLayout() {
        return false;
    }
}
И теперь просто нужно его добавить к логгеру. При создании appender-а нужно передать ему соответствующий JTextPane
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
 
import javax.swing.*;
import java.io.IOException;
 
public class Main {
    public static void main(String[] args) throws IOException, InterruptedException {
        //Создадим окно с JTextPane и покажем его
        JTextPane textPane = new JTextPane();
        JFrame frame = new JFrame();
        frame.setSize(500, 500);
        frame.add(textPane);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 
        //Сконфигурируем логгер, чтобы он использовал наш appender
        Logger rootLogger = LogManager.getRootLogger();
        rootLogger.addAppender(new TextPaneAppender(textPane));
 
        Logger log = LogManager.getLogger("Main");
        log.info("My Message 1");
        Thread.sleep(3000);
        log.info("My Message 2");
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2014, 23:20
Помогаю со студенческими работами здесь

Как прописать класс Logger в OnStart?
Подскажите,как обратиться к общему классу Logger из запуска службы OnStart?

Как вывести целочисленный массив в JTextPane?
Есть целочисленный массив. Надо его вывести в JTextPane. Пробую привести массив в строку String OutputString = Arrays.ToString(arr);, но...

Как отследить событие ввода текста в jTextPane?
Здравствуйте. Как отследить событие ввода текста в jTextPane? P.S. И заодно как запретить ввод текста туда? Спасибо

Как перенаправить
Добрый день! пытаюсь написать админку. Написал код авторизации и если пользователь авторизировался я его заношу в сессию и...

Как перенаправить вывод?
Есть веб-сервис, который получает запрос, обрабатывает его и 'выплевывает' результат в виде html-страницы. Как можно: 1. Перенаправить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru