Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java tools & IDE's > Log4j |
Автор: unia 14.12.2005, 13:58 |
Как заставить свой Appender перехвативать логи?? На сколько я понимаю нужно прописать что-то в log4j.properties... Жду ответа |
Автор: LSD 14.12.2005, 14:35 | ||||||
Надо добавить его к логгеру, кодом это делается так:
Или прописать в конфигурационный файл, что то наподобие:
|
Автор: Guest 14.12.2005, 14:51 |
У меня следующая ситуация: логер оглашен в тестируемом класе,скажем в Import, а аппендер в класе TestImport, так что кодом добавить аппендер в логгер вроде не вийдет. А в конфугупационном файле на сколько я понял прописивается обичний файл логер с именем MyAppender. Немного не то . метод класа TestImport тестирует метод класа Import в котором ведется логирование. Как мне через аппендер класа TestImport(он их почемуто не перехвативает, может и не должен) просмотреть логи Import'а. Спасибо за бистрый ответ.... |
Автор: LSD 14.12.2005, 14:59 | ||
Почему это? Когда ты пишешь Logger.getLogger("ru.vingrad.sample"), то происходит следующее: если логгера с таким именем нет, то он создается, если есть то возвращается ссылка на существующий экземпляр. Так что пишешь в TestImport - Logger.getLogger("ru.vingrad.sample") с тем же самым именем, что и в Import и получишь ссылку на тот же самый логгер. И добавляешь к нему свой аппендер. |
Автор: unia 14.12.2005, 15:31 |
В коде прописал - работает, спасибо. а как бы ето организовать в пропертях, мне кажется что так как написано выше будет просто обичный лог писатся в файл или нет? |
Автор: LSD 14.12.2005, 15:38 | ||||
Да, пример с XML конфигуратором будет использовать стандартный FileAppender. Если хочешь заменяешь имя класса org.apache.log4j.FileAppender на имя своего класса. Прописываешь нужные параметры, если надо добавялешь свой Layout. Только учти, что секция
должна быть одна, и если она уже есть, то надо просто в нее добавить свой аппендер. |