Тот факт, что у вас есть отдельный экземпляр Logger
для каждого файла не означает, что они получают вход в другой файл , На самом деле, они обычно не являются. Единственная цель дать класс как аргумент метода getLogger()
- дать ему имя (в этом случае имя вашего класса со всеми пакетами).
Название преследует две цели: во-первых, он может быть зарегистрирован в ваших сообщениях как это:
[main] INFO MyApp - Entering application.
[main] DEBUG com.foo.Bar - Did it again!
[main] INFO MyApp - Exiting application.
Во-вторых, вы можете использовать его для более мелкозернистой конфигурации log4j:
# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN
файл, где написаны журналы можно управлять в конфигурации, например, так:
log4j.rootLogger=myfile
log4j.appender.myfile=org.apache.log4j.RollingFileAppender
log4j.appender.myfile.File=example.log
Вы можете просто прочитать manual для получения дополнительной информации.
Если по каким-то причинам вы не хотите, чтобы связать регистратор к классу, вы всегда можете позвонить Logger.getRootLogger()
, который возвращает регистратор со специальным именем по умолчанию ROOT
.