log4j2 не находит файл конфигурации - PullRequest
0 голосов
/ 03 июля 2018

Я разработал динамический веб-проект с использованием Eclypse, и я хотел бы использовать log4j2 для регистрации информации и ошибок в файле.

Я сделал файл конфигурации, но при запуске приложения появляется эта ошибка:

ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations.

Согласно документации, log4j2 должен искать файл log4j2.* в каталоге WEB-INF, но даже если файл там, мое приложение все равно не может его увидеть.

Файл имеет формат .properties, поэтому дополнительные пакеты не требуются.

Что я делаю не так?

1 Ответ

0 голосов
/ 23 августа 2018

Создайте класс Logger, скажем, MyLogger, Log4j2 поищите расположение файла конфигурации из свойства "log4j.configurationFile", установите это свойство в статическом блоке класса. это обеспечит доступ к расположению файла конфигурации для Log4j2 во время запуска. Вы можете разместить конфигурационный файл вне приложения.

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.File;
public class MyLogger { 
   static {   System.setProperty("log4j.configurationFile",System.getProperty("prop.loc")+File.separator+"MyLog4j2.xml");   
   }

   public static Logger getLogger(Class<?> clazz){
         return LogManager.getLogger(clazz);
   }
}

Вызов журнала инициализации класса, как показано ниже

public class MyClass {

         private static final Logger logger = MyLogger.getLogger(MyImpl.class);

    public myMethod(){
        logger.info("My logs");
    }
}
...