log4j направляет весь вывод журнала к stdout даже при том, что он, как не предполагается,

Когда NeXT определяли NextStep API (в противоположность операционной системе NEXTSTEP), они использовали префикс NX, как в NXConstantString. Когда они писали спецификацию OpenStep с Sun (чтобы не быть перепутанным с операционной системой OPENSTEP), они использовали префикс NS, как в NSObject.

9
задан cons 7 August 2009 в 10:59
поделиться

2 ответа

Вам необходимо установить additivity = false , IIRC. Из руководства log4j :

Каждый разрешенный запрос на ведение журнала для данный регистратор будет перенаправлен всем дополнения в этом регистраторе как приложения выше в иерархия. Другими словами, добавители наследуются аддитивно от иерархия логгеров. Например, если консольное приложение добавлено в корень logger, затем все включили ведение журнала запросы будут, по крайней мере, напечатаны на консоль. Если дополнительно файл appender добавлен в регистратор, скажем C, затем включил запросы на ведение журнала для C и дети C будут печатать в файле и на консоли. Возможно переопределить это поведение по умолчанию, чтобы накопление appender больше не добавка путем установки аддитивности значение false.

Попробуйте следующее:

log4j.rootLogger=DEBUG,stdout
log4j.logger.notRootLogger=DEBUG,somewhereelse
log4j.additivity.notRootLogger=false
24
ответ дан 4 December 2019 в 08:52
поделиться

Хмм, следовало бы более внимательно прочитать краткое введение к log4j

log4j.additivity.notRootLogger=false

исправляет его, потому что он наследует дополнения от регистраторов над ним в иерархии, а корневой регистратор, очевидно, находится наверху иерархии.

0
ответ дан 4 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: