powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Перенаправление вывод Log4J
25 сообщений из 38, страница 1 из 2
Перенаправление вывод Log4J
    #36553117
Фотография T800
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Столкнулся с тем, что консольный аппендер Log4J не глушится перенаправлением вывода программы в /dev/null. Разобравшись, выяснил, что, если, например, перенаправить вывод в файл log.txt, то вывод пойдет как в консоль, так и в файл.

Вопрос: с чем это связано?
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36553429
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть он выводит не system.out, а в system.err. Проще нормально log4j настроить, чем ерундной заниматься.
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36553942
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поставить у файл-логгера additivity=false
все логгеры по умолчанию делают свое дело и передают сообщение дальше по иерархии, а вверху как правило консольный
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36556193
Фотография T800
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvМожет быть он выводит не system.out, а в system.err. Проще нормально log4j настроить, чем ерундной заниматься.
2>&1>/dev/null

Дело несколько не в этом. Вопрос почему это настраивается так, а не иначе - вторичен.
В общем, есть необходимость убрать вывод программы в /dev/null, и все работает, когда идет обычный консольный вывод (что логично, ибо банально). Но, вот, оказалось, что при логгировании через log4J избавиться от вывода в консоль не получается. И пока я не вижу этому разумного объяснения.
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36556198
Фотография T800
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaпоставить у файл-логгера additivity=false
все логгеры по умолчанию делают свое дело и передают сообщение дальше по иерархии, а вверху как правило консольный
непонятно, почему консольный вывод log4j не глушится
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36556429
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T800chpashaпоставить у файл-логгера additivity=false
все логгеры по умолчанию делают свое дело и передают сообщение дальше по иерархии, а вверху как правило консольный
непонятно, почему консольный вывод log4j не глушится
вам нужно задачу решить или просто интересно? если второе, спросите у автора
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36556484
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Авторы (точнее автор) ответят, что log4j имеет ряд проблем и лучше взять logback
http://logback.qos.ch/reasonsToSwitch.html
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36556797
Фотография T800
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaвам нужно задачу решить или просто интересно? если второе, спросите у автора
Задачу можно решить тысяча и одним способом. Это понятно.
Просто в данной ситуации я не вижу рационального объяснения происходящему.
Но не может приложение выводить ничего в консоль, когда вывод перенаправлен,
а приложение выводит. И эксперименты показали, что дело в log4j.
По-любому я нахожу данный кейс занятным.
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36556999
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, T800!

> Но не может приложение выводить ничего в консоль, когда вывод перенаправлен,
> а приложение выводит. И эксперименты показали, что дело в log4j.
> По-любому я нахожу данный кейс занятным.

Ага. Если посмотреть исходники org.apache.log4j.ConsoleAppender
то видно, что он по-умолчанию выводит в System.out, но может и в System.err
Так что не должно быть.
Хотя напиши тест с выводом туда и туда (простое консольное приложение) и
посмотри, будет ли перенаправляться ;)

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36557002
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Leonidv!
> Авторы (точнее автор) ответят, что log4j имеет ряд проблем и лучше взять logback
> http://logback.qos.ch/reasonsToSwitch.html

Забавно. Кто-нибудь пробовал? К jboss, например, прикручивал вместо
log4j? В винде log4j при обширном выводе едва ли не узкое место в нём :)

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36558252
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T800
Просто в данной ситуации я не вижу рационального объяснения происходящему.

А его никто не увидит, пока не увидит log4j.properties и что же на самом деле выводится в поток, а что в файл.
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36558770
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvАвторы (точнее автор) ответят, что log4j имеет ряд проблем и лучше взять logback
http://logback.qos.ch/reasonsToSwitch.html
я тоже самое хотел посоветовать, но потом передумал
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36558776
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_Samara
Добрый день, Leonidv!
> Авторы (точнее автор) ответят, что log4j имеет ряд проблем и лучше взять logback
> http://logback.qos.ch/reasonsToSwitch.html

Забавно. Кто-нибудь пробовал? К jboss, например, прикручивал вместо
log4j? В винде log4j при обширном выводе едва ли не узкое место в нём :)

Я использовал. Но в desktop-приложение небольшом, по аспирантуре. Думаю, потом и в основном проекте мигрируем на него.
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36558847
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще глушить опцией OFF.

Например
Код: plaintext
1.
2.
logger=Logger.getLogger("MyLogger");
logger.setLevel(Level.OFF);

Если использовался propertyConfigurator то также можно отключить логирование
только я не помню точно название этого параметра.
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36560491
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Leonidv!

> Я использовал. Но в desktop-приложение небольшом, по аспирантуре. Думаю,
> потом и в основном проекте мигрируем на него.

Попробовал. В целом хорошо, но Hibernate, зараза, пишет в log4j, так что
два логгера работают :)
Интересно, как это лечится?

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36560790
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_Samara
Попробовал. В целом хорошо, но Hibernate, зараза, пишет в log4j, так что
два логгера работают :)
Интересно, как это лечится?

Почитал про logback. В целом понравилось. Единственный (для меня) недостаток - слишком большое количество сущностей. Трудно разбираться. По поводу log4j. Думаю что если разные логгеры не пишут в ОДИН поток STDOUT или STDERR - то нет никаких проблем. Если пишут - то вывод будет представлять собой месиво разных событий еще и не отсортированное по времени генерации (побочный эффект буферов).
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36560793
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите в сторону slf4j. logback имеет его native-реализацию, а вот для log4j нужно какую-то библиотеку-связку добавить. Совершенно не уверен, что поможет - но попробовать стоить. И если не сложно - отпишитесь, пожалуйста. Получится или нет.
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36560825
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvПосмотрите в сторону slf4j.
+1

Leonidv
а вот для log4j нужно какую-то библиотеку-связку добавить. Совершенно не уверен, что поможет
поможет, и не только с ним. смотреть на slf4j interceptors, в частности log4j-over-slf4j
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36560838
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonGKS_Samara
Попробовал. В целом хорошо, но Hibernate, зараза, пишет в log4j, так что
два логгера работают :)
Интересно, как это лечится?

Почитал про logback. В целом понравилось. Единственный (для меня) недостаток - слишком большое количество сущностей.
о каких сущностях речь?

mayton
Трудно разбираться.
ну не знаю, лично мне в свое время хватило прочтения туториала на оффсайте. написал тестовый и деплоймент конфиг и с тех пор год в них ничего не менял.
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36560910
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, chpasha!

> поможет, и не только с ним. смотреть на slf4j interceptors, в частности
> log4j-over-slf4j

При попытке заменить им log4j jar получаю exception'ы - не хватает
классов, например org\apache\log4j\xml\DOMConfigurator.class
Неполная замена получается...

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36561095
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Им не нужно заменять log4j. Его нужно подключить, чтобы slf4j смох перехватить logger'ы от log4j. Вроде так.
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36561113
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Leonidv!

> Им не нужно заменять log4j. Его нужно подключить, чтобы slf4j смох
> перехватить logger'ы от log4j. Вроде так.

В общем- удалил из либов slf4j-jboss-logging.jar добавил
log4j-over-slf4j-1.5.10.jar
logback-classic-0.9.20.jar
logback-core-0.9.20.jar
и конфиг, соответственно.

Судя по тому, что пишутся оба файла (и указанный в конфиге log4j и для
logback) - что-то я не доделал.

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36561114
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сущность - класс, сущность-интерфейс и т.д.
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36561119
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_Samara
Добрый день, chpasha!

> поможет, и не только с ним. смотреть на slf4j interceptors, в частности
> log4j-over-slf4j

При попытке заменить им log4j jar получаю exception'ы - не хватает
классов, например org\apache\log4j\xml\DOMConfigurator.class
Неполная замена получается...

у вас где-то явная реконфигурация в коде присутствует. у меня log4j в classpath просто нету. работает логгирование от спринга и jdbc до экзотических приблуд типа jodconverter и oscache. гибернейт не юзаю, врать не буду. но очень удивлюсь, если в нем где-то явная реконфигурация есть. кроме того судя по этому они уже в 2007на slf4j должны были перейти
...
Рейтинг: 0 / 0
Перенаправление вывод Log4J
    #36561137
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvИм не нужно заменять log4j. Его нужно подключить, чтобы slf4j смох перехватить logger'ы от log4j. Вроде так.
если logback через slf4j использовать + перехватчики, то нативные логгеры (log4j и commons.logging) в classpath не нужны. в том то и смысл перехватчиков, перенаправлять весь вывод в лог на logback.

вот если просто за цель переход на slf4j иметь, то тогда нативные либы нужны. плюс адаптеры для slf4j
slf4j-log4j12, slf4j-jcl и т.д.
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Перенаправление вывод Log4J
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]