Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

Логирование
Список форумов
 ->  Разное


 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
MakcuK-_- : 20
Новичок

СообщениеФев 13, 2012 23:15 
Ответить с цитатой
Допустим я использую log4j.
Есть ли возможность настроить его таким образом, чтоб он выдавал результаты например в StringBuffer или в че-нибудь типо swt-шного text или swing-овский jtextfield?

по возможности можно кинуть ссылки на этот момент в доке.
К началу Посмотреть профиль Отправить личное сообщение
pjotar : 453
Бывалый
Откуда: Санкт-Петербург

СообщениеФев 14, 2012 9:17 
Ответить с цитатой
Вполне. У меня для свингового аппа журнал был сделан из лога. Ну короче типа так:
Код:
MyAppender implements Appender{
    append(Event e){
        //добавляем иконку соответсвенно уровню
        //пишем в журнал, выделяя цветом
        //для варнингов и ерроров можно показывать диалог
    }
}
К началу Посмотреть профиль Отправить личное сообщение
pjotar : 453
Бывалый
Откуда: Санкт-Петербург

СообщениеФев 14, 2012 9:21 
Ответить с цитатой
а Вам для SWT или Swing? А то может мой возмёте?
К началу Посмотреть профиль Отправить личное сообщение
MakcuK-_- : 20
Новичок

СообщениеФев 14, 2012 13:03 
Ответить с цитатой
pjotar писал(а):
а Вам для SWT или Swing? А то может мой возмёте?


у меня swt внутри jface'а

Что-то не особо понял ваш пример.
По сути наверное даже будет проще сделать просто перенаправление всей консоли. Такое тоже возможно?

Тут дело ведь в том, что я подключаю jar-ник(внутри него лежат как раз таки настройки логера) к новому проекту.

А если даже и догадываюсь, то там же есть метод doAppend.
Если я правильно понял, то в методе append вы кидаете лог в какой-нить jtextfield?
К началу Посмотреть профиль Отправить личное сообщение
pjotar : 453
Бывалый
Откуда: Санкт-Петербург

СообщениеФев 14, 2012 13:35 
Ответить с цитатой
MakcuK-_- писал(а):

Что-то не особо понял ваш пример.

1. реализуете интерфейс org.apache.log4j.Appender
2. в конфиге log4j добавляете Ваш аппендер наряду с консольным и файловым


MakcuK-_- писал(а):

По сути наверное даже будет проще сделать просто перенаправление всей консоли. Такое тоже возможно?

Помоему не проще, даже если суметь - потеряется LoggingEvent как объект, останется плоский текст.


MakcuK-_- писал(а):

Тут дело ведь в том, что я подключаю jar-ник(внутри него лежат как раз таки настройки логера) к новому проекту.

Там log4j.properties? В любом случае, сконфигурировать можно.


MakcuK-_- писал(а):

А если даже и догадываюсь, то там же есть метод doAppend.
Если я правильно понял, то в методе append вы кидаете лог в какой-нить jtextfield?

Ага, подсвечивая его соответсвующим уровню цветом.
К началу Посмотреть профиль Отправить личное сообщение
MakcuK-_- : 20
Новичок

СообщениеФев 14, 2012 21:08 
Ответить с цитатой
если не трудно, приведите законченный пример log4j.properties
К началу Посмотреть профиль Отправить личное сообщение
pjotar : 453
Бывалый
Откуда: Санкт-Петербург

СообщениеФев 14, 2012 21:14 
Ответить с цитатой
Нет проблем. Ближе к полуночи МСК, как дома буду.
К началу Посмотреть профиль Отправить личное сообщение
MakcuK-_- : 20
Новичок

СообщениеФев 14, 2012 21:15 
Ответить с цитатой
log4j.rootLogger=DEBUG, stdout , text

log4j.appender.stdout.Encoding=UTF-8
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=...

log4j.appender.stdout.Encoding=UTF-8
log4j.appender.stdout=[здесь я прописываю название класса, который отнаследованный от org.apache.log4j.Appender?]
...


здесь stdout старый логер, который уже был, а text то, чем я буду пользоваться для отображения
К началу Посмотреть профиль Отправить личное сообщение
pjotar : 453
Бывалый
Откуда: Санкт-Петербург

СообщениеФев 14, 2012 21:18 
Ответить с цитатой
во втором блоке забыли поменять stdout на text
К началу Посмотреть профиль Отправить личное сообщение
MakcuK-_- : 20
Новичок

СообщениеФев 14, 2012 21:38 
Ответить с цитатой
это я просто скопипастил.
вообще копипаст под конец дня это опасная операция.
К началу Посмотреть профиль Отправить личное сообщение
MakcuK-_- : 20
Новичок

СообщениеФев 15, 2012 19:14 
Ответить с цитатой
у меня проблема другого рода возникла, вызванная тем, что этот jar-ник не видит appender'а, описанного в другом проекте.
К началу Посмотреть профиль Отправить личное сообщение
MakcuK-_- : 20
Новичок

СообщениеФев 16, 2012 22:12 
Ответить с цитатой
всё-таки скиньте настройки, плс
К началу Посмотреть профиль Отправить личное сообщение
pjotar : 453
Бывалый
Откуда: Санкт-Петербург

СообщениеФев 16, 2012 22:28 
Ответить с цитатой
Код:

log4j.rootCategory=TRACE, O, SwingLog

#SwingLog
log4j.appender.SwingLog=ru.pjotar.swinglog.MyAppender
log4j.appender.SwingLog.Threshold=INFO
#log4j.appender.SwingLog.layout=org.apache.log4j.PatternLayout
#log4j.appender.SwingLog.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n


#Console
log4j.appender.O=org.apache.log4j.ConsoleAppender
log4j.appender.O.layout=org.apache.log4j.PatternLayout
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n
log4j.appender.O.Threshold=TRACE


Сейчас заметил: .layout и .layout.ConversionPattern моему не нужны.
К началу Посмотреть профиль Отправить личное сообщение
pjotar : 453
Бывалый
Откуда: Санкт-Петербург

СообщениеФев 16, 2012 22:33 
Ответить с цитатой
Кстати, указание Encoding=UTF-8 для чего? А то у меня на GNU/Linux кириллица вопросиками (63ий символ ASCII).
К началу Посмотреть профиль Отправить личное сообщение
Skipy : 4805
Я тут живу!
Откуда: Москва, Россия

СообщениеФев 17, 2012 14:31 
Ответить с цитатой
Вопросы появляются, когда невозможно распознать кодировку. Например, читать русский текст в Cp1251 как UTF-8. С точки зрения UTF-8 русские символы Cp1251 не могут существовать - они противоречат принципам построения UTF-8. Потому каждый нераспознанный байт декодировщик в java заменяет на '?'.

Еще пример - в кодировке Cp1251 нет байта 0x98. А русский символ 'И' в UTF-8 - 0xD098. И если прочитать правильную UTF-8 как Cp1251 - там, где есть символ 'И', появится вопрос на месте второго байта (первым будет D0 - 'Р').
_________________
С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других!
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
 
Начать новую тему  Ответить на тему
Страница 1 из 1
Список форумов
 -> Разное


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru