Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> хендлер для лога 
V
    Опции темы
susanin
Дата 30.3.2013, 03:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 7



Всем привет! пытаюсь сделать свой хендлер для лога. хочу, чтобы некоторые сообщения выводились не в файл, а в сообщении во фрейме. сделал класс LogMessageFrame
Код

public class LogMessageFrame extends StreamHandler {
    
    public LogMessageFrame(){
        super();
        window = new JFrame("Unexpected exception");
        panel = new JPanel();
        message = new JLabel();
        window.add(panel);
        panel.add(message);
        outErr = new OutputStream() {

            @Override
            public void write(int b) throws IOException {}
            
            @Override
            public void write(byte b[]) throws IOException {
                message.setText(new String(b));
                
            }
        };
        this.setOutputStream(outErr);
        this.setLevel(Level.ALL);
        window.setSize(200, 200);
        window.setVisible(true);
    }
    
    @Override
    public void publish (LogRecord record){
        if(!window.isVisible()) return;
        super.publish(record);
        flush();
    }
    
    private JFrame window;
    private JPanel panel;
    private JLabel message;
    private OutputStream outErr;
}

и потом пытаюсь в него что то залогировать
Код

try{
            throw new IOException(); //только в целях тестирования
        }
        catch(IOException ex){
            Logger myLogger = Logger.getLogger("my.custom.logger");
            myLogger.setUseParentHandlers(false);
            LogMessageFrame handler = new LogMessageFrame();
            myLogger.addHandler(handler);
            myLogger.log(new LogRecord(Level.SEVERE, "Error. "+ex.getMessage()));
        }

но на выходе ноль. в дебаге прога даже не заходит в кусок кода message.setText(new String(b)); , но при этом упорно пишет лог в консоль. кто может подсказать, что я неправильно сделал?

Это сообщение отредактировал(а) susanin - 30.3.2013, 03:24
PM MAIL   Вверх
susanin
Дата 1.4.2013, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 7



решено. нужно было для хендлера уровень логов задать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0636 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.