Log4J регистраторы для разных классов

Я хочу использовать Log4J для регистрации моих Java-проектов. Я создал файл log4j.properties в каталоге src со следующим содержимым:

# Root logger option
log4j.rootLogger=INFO, file, stdout
log4j.logger.DEFAULT_LOGGER=INFO,file2

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=file.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p %c - %m%n



# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n


log4j.appender.file2=org.apache.log4j.FileAppender
log4j.appender.file2.File=file2.log
log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file2.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

Например, я хочу использовать & quot; DEFAULT_LOGGER & quot; только в моем основном методе. Итак, я написал:

static Logger log = Logger.getLogger("DEFAULT_LOGGER");
log.fatal("Process Logger");

Но когда я выполняю основной метод, я печатаю сообщение «Process Logger» всем Appenders (stdout, file и file2) Но я хочу только распечатать его в file2. Как я могу это сделать или лучше сказать, что я делаю не так?

Второй момент: когда я выполняю метод main во второй раз, он не перезаписывает файл и файл2, он просто добавляет строку в текстовый файл. Как я могу избежать этого?

Ответы на вопрос(2)

Ваш ответ на вопрос