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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Log4j, custom Appender 
:(
    Опции темы
unia
Дата 14.12.2005, 13:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как заставить свой Appender перехвативать логи??
На сколько я понимаю нужно прописать что-то в log4j.properties...
Жду ответа
  Вверх
LSD
Дата 14.12.2005, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 15
Всего: 538



Цитата(unia @ 14.12.2005, 13:58)
Как заставить свой Appender перехвативать логи??

Надо добавить его к логгеру, кодом это делается так:
Код
Logger logger = Logger.getLogger("ru.vingrad.sample");
MyAppender myAppender = new MyAppender();
logger.addAppender(myAppender);


Или прописать в конфигурационный файл, что то наподобие:
Код
  <appender name="MyAppender" class="org.apache.log4j.FileAppender">
    <param name="File" value="application.log"/>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{ISO8601} [%-5p] - %m at %l%n"/>
    </layout>
  </appender>
  <root>
    <priority value="debug"/>
    <appender-ref ref="MyAppender"/>
  </root>



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Guest
Дата 14.12.2005, 14:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня следующая ситуация: логер оглашен в тестируемом класе,скажем в Import, а аппендер в класе TestImport, так что кодом добавить аппендер в логгер вроде не вийдет.
А в конфугупационном файле на сколько я понял прописивается обичний файл логер с именем MyAppender.
Немного не то .
метод класа TestImport тестирует метод класа Import в котором ведется логирование. Как мне через аппендер класа TestImport(он их почемуто не перехвативает, может и не должен) просмотреть логи Import'а. Спасибо за бистрый ответ....
  Вверх
LSD
Дата 14.12.2005, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 15
Всего: 538



Цитата(Guest @ 14.12.2005, 14:51)
У меня следующая ситуация: логер оглашен в тестируемом класе,скажем в Import, а аппендер в класе TestImport, так что кодом добавить аппендер в логгер вроде не вийдет.

Почему это? Когда ты пишешь Logger.getLogger("ru.vingrad.sample"), то происходит следующее: если логгера с таким именем нет, то он создается, если есть то возвращается ссылка на существующий экземпляр. Так что пишешь в TestImport - Logger.getLogger("ru.vingrad.sample") с тем же самым именем, что и в Import и получишь ссылку на тот же самый логгер. И добавляешь к нему свой аппендер.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
unia
Дата 14.12.2005, 15:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В коде прописал - работает, спасибо.
а как бы ето организовать в пропертях, мне кажется что так как написано выше будет просто обичный лог писатся в файл или нет?
  Вверх
LSD
Дата 14.12.2005, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 15
Всего: 538



Цитата(unia @ 14.12.2005, 15:31)
а как бы ето организовать в пропертях, мне кажется что так как написано выше будет просто обичный лог писатся в файл или нет?

Да, пример с XML конфигуратором будет использовать стандартный FileAppender. Если хочешь заменяешь имя класса org.apache.log4j.FileAppender на имя своего класса. Прописываешь нужные параметры, если надо добавялешь свой Layout. Только учти, что секция
Код
  <root>    
    <priority value="debug"/>    
    <appender-ref ref="MyAppender"/>    
  </root>

должна быть одна, и если она уже есть, то надо просто в нее добавить свой аппендер.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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