Функция getLogger(String name)
фактически связывает регистратор со строкой, которую вы передаете в качестве аргумента.Этот метод обычно используется с именами классов, поэтому вы можете получить приложения, настроенные с вашим именем класса.
Если вы не указали ни одного в log4j.properties
, который соответствует вашему случаю, он использует rootLogger с настроенным обоими вашими приложениями, и поэтому он регистрируется два раза.
Способ, которым выВы можете решить эту проблему, объявив регистратор с пользовательским именем, а затем получите регистратор с именем "sim" и добавьте его вместе с вашим appender.
Добавьте следующее log4j.properties
, и оно будет работать:
log4j.logger.sim=INFO, sim
log4j.additivity.sim=false
Однако я не рекомендую этот способ ведения журналов, потому что он может быть очень сложным, чтобы понять, когда ваши классы начинают использовать более одного регистратора.