Log4j выводит на консоль каждый раз

#java #eclipse #logging #log4j #log4j2

#java #eclipse #ведение журнала #log4j #log4j2

Вопрос:

Я поместил следующий файл log4j.properties в папку src моего динамического веб-проекта eclipse. Но каждый раз журналы печатаются на консоли, хотя я пишу код для печати журналов только в файле. Если я удаляю файл log4j.properties, то он также печатается на консоли.Не знаю, что пошло не так.

 ###############################################################################

log4j.rootLogger=INFO, file

###############################################################################

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:/apache-tomcat-7.0.47/webapps/LogFile.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %-5p %c - %m%n

###############################################################################
  

Я использую следующий код для печати журналов.

 import org.apache.log4j.Logger;

Logger log = Logger.getLogger(Client.class.getName());
log.info("First log");
  

Комментарии:

1. Пожалуйста, опубликуйте некоторые строки, которые были напечатаны на консоли.

2. Таким образом вывод генерируется на консоли. [ИНФОРМАЦИЯ][com.sun.security.ntlm. Клиент] — Первый журнал

Ответ №1:

Попробуйте переопределить конфигурацию log4j в вашем классе следующим образом:

 import org.apache.log4j.PropertyConfigurator;;

static{
     PropertyConfigurator.configure("src/main/resources/log4j.properties");
}
  

Предполагается, что у вас есть файл, вызываемый log4j.properties в src/main/resources

Ответ №2:

Спасибо, Нихил

Я использовал следующий код, просмотрев ваш код, и он отлично работал.

 import org.apache.log4j.PropertyConfigurator;

PropertyConfigurator.configure(getClass().getClassLoader().getResourceAsStream("log4j.properties"));