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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отключить логгер в готовом компоненте 
V
    Опции темы
maddoc
Дата 27.6.2010, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть сторонний jar. В нем объявлен  логгер. По умолчанию он выключен .
Код

 static 
    {
        Logger.getLogger("net.xxx.xx").setLevel(Level.OFF);
    }

Но при вызове некоторых методов внутри  он включается 
Код


      Logger.getLogger("net.xxx.xx").setLevel(Level.INFO);


и начинает слать сообщения в консоль. как его вырубить  не трогая jar?

Это сообщение отредактировал(а) maddoc - 27.6.2010, 13:36


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
Skipy
Дата 28.6.2010, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 6
Всего: 16



Опять вызвать 

Код

Logger.getLogger("net.xxx.xx").setLevel(Level.OFF);


Логгеры в пределах JVM можно получать по их имени из любой точки. Я вообще делал JMX bean для управления уровнями логирования в runtime.


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
maddoc
Дата 28.6.2010, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Skipy,  smile 
это и первокурснику ясно, но вызов методов с включением логгера происходит многократно и он переписывает мои выбор



--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
Skipy
Дата 28.6.2010, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 6
Всего: 16



Так Вам просто надо вырубить определенный логгер? Делаете аппендер с типом org.apache.log4j.varia.NullAppender, выставляете additivity=false, чтобы не писал в родительский. Связываете нужный Вам логгер с этим аппендером. Всё.

P.S. Насчет log4j (надеюсь, у Вас он?) можно почитать вот это: http://www.skipy.ru/useful/logging.html


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
jk1
Дата 28.6.2010, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 40
Всего: 75



maddoc, при использовании java.util.logging можно использовать фильтр:
Код

 Logger.getLogger("net.xxx.xx").setFilter(new Filter() {
            public boolean isLoggable(LogRecord record) {
                return false;
            }
        });

после этого он уже ничего никуда не выведет.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
maddoc
Дата 29.6.2010, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



jk1, выводит


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
ivanovpv
Дата 29.6.2010, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

Репутация: 4
Всего: 28



Ну а добавить запись в log4j.properties?


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
maddoc
Дата 29.6.2010, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ivanovpv, 
Skipy, 

Код

log4j.rootLogger=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n


log4j.logger.org.apache.commons.httpclient=ERROR

log4j.appender.net.java.ao=org.apache.log4j.varia.NullAppender
log4j.logger.net.java.ao=ERROR
log4j.additivity.net.java.ao=false

 smile выводит

Это сообщение отредактировал(а) maddoc - 29.6.2010, 11:14


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
jk1
Дата 29.6.2010, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 40
Всего: 75



HttpClient использует JCL для логгирования. Возможно, у Вас срабатывает его дефолтный логгер, для него можно попробовать подкрутить соответствующие property:
Цитата

JCL is distributed with a very simple Log implementation named org.apache.commons.logging.impl.SimpleLog. This is intended to be a minimal implementation and those requiring a fully functional open source logging system are directed to Log4J.
SimpleLog sends all (enabled) log messages, for all defined loggers, to System.err. The following system properties are supported to configure the behavior of this logger:
org.apache.commons.logging.simplelog.defaultlog - Default logging detail level for all instances of SimpleLog. Must be one of:
    trace
    debug
    info
    warn
    error
    fatal
    If not specified, defaults to info.
org.apache.commons.logging.simplelog.log.xxxxx - Logging detail level for a SimpleLog instance named "xxxxx". Must be one of:
    trace
   debug
   info
   warn
   error
   fatal
If not specified, the default logging detail level is used.


Это сообщение отредактировал(а) jk1 - 29.6.2010, 12:35


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
ivanovpv
Дата 30.6.2010, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

Репутация: 4
Всего: 28



Попробуй объявить корневой логгер нулевым, а те которые нужны присобачить врукопашную к консолю. Тогда в пустоту уйдут все логи, кроме тех которые вручную присоединены к ненулевому аппендеру
Код

log4j.rootLogger=ALL, null
log4j.appender.null=org.apache.log4j.varia.NullAppender

log4j.logger.org.apache.commons.httpclient=ERROR
log4j.appender.org.apache.commons.httpclient=org.apache.log4j.ConsoleAppender



--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
Skipy
Дата 30.6.2010, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 6
Всего: 16



Цитата(maddoc @ 29.6.2010,  11:13)
ivanovpv, 
Skipy, 

Код

log4j.appender.net.java.ao=org.apache.log4j.varia.NullAppender
log4j.logger.net.java.ao=ERROR
log4j.additivity.net.java.ao=false

 smile выводит

Вообще-то, имхо, должно быть так:

Код

log4j.appender.NowhereAppender=org.apache.log4j.varia.NullAppender
log4j.logger.net.java.ao=ERROR, NowhereAppender
log4j.additivity.net.java.ao=false


Вы же не указали логгеру, какой аппендер использовать!

Это сообщение отредактировал(а) Skipy - 30.6.2010, 11:07


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
maddoc
Дата 30.6.2010, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Skipy, sorry
Я писал по памяти, оригинал
Код

log4j.appender.orm=org.apache.log4j.varia.NullAppender
log4j.logger.net.java.ao=ERROR, orm
log4j.additivity.net.java.ao=false


Добавлено @ 13:04
ivanovpv, 

Код

#log4j.rootLogger=INFO, stdout
log4j.rootLogger=ALL, null
log4j.appender.null=org.apache.log4j.varia.NullAppender

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n

log4j.logger.org.apache.commons.httpclient=ERROR

log4j.appender.orm=org.apache.log4j.varia.NullAppender
log4j.logger.net.java.ao=ERROR, orm
log4j.additivity.net.java.ao=false

выводит

Осталось проверить способ 
jk1, 

Это сообщение отредактировал(а) maddoc - 30.6.2010, 13:05


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
ivanovpv
Дата 1.7.2010, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

Репутация: 4
Всего: 28



Надо убрать 3 последние строчки!
Код

log4j.appender.orm=org.apache.log4j.varia.NullAppender
log4j.logger.net.java.ao=ERROR, orm
log4j.additivity.net.java.ao=false


Если не указан аппендер он будет использовать корневой аппендер, который уже объявлен нулевым


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
maddoc
Дата 1.7.2010, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



 smile  smile  smile 

выводит


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
LSD
Дата 1.7.2010, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



maddoc, ты бы для начала написал что за логгер использует эта твоя библиотека smile 


--------------------
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
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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