Получение «log4j: ОШИБКА не удалось создать экземпляр приложения» при создании пользовательского приложения - PullRequest
0 голосов
/ 15 апреля 2020

Ниже приведены подробные файлы, в которых я получаю проблему. Я не уверен, правильно ли я инициализирую Appender. Это мои log4j.properties

# Set root logger level to Info.
log4j.rootLogger=INFO, A1, HDFS

# A1 is set to be a ConsoleAppender.#
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r %d{dd MMM yyyy HH:mm:ss,SSS} [%t] %-5p %c %x - %m%n



log4j.appender.HDFS=com.abcd.util.HDFSFileAppender 
log4j.appender.HDFS.filepath=log/myapp.log
log4j.appender.HDFS.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%-4r %d{dd MMM yyyy HH:mm:ss,SSS} [%t] %-5p %c %x - %m%n

Это моя трассировка ошибок

log4j: ОШИБКА Не удалось создать экземпляр класса [com.abcd.util.HDFSFileAppender]. java .lang.InstantiationException: com.abcd.util.HDFSFileAppender at java .lang.Class.newInstance (Class. java: 427) в org. apache .log4j.helpers.OptionConverter.instantiateByClassName (OptionConverter . java: 337) в орг. apache .log4j.helpers.OptionConverter.instantiateByKey (OptionConverter. java: 124) в орг. apache .log4j.PropertyConfigurator.parseAppender (PropertyConfigurator. java: 785 ) в org. apache .log4j.PropertyConfigurator.parseCategory (PropertyConfigurator. java: 768) в org. apache .log4j.PropertyConfigurator.configureRootCategory (PropertyConfigurator. java: 648) в org. log4j.PropertyConfigurator.doConfigure (PropertyConfigurator. java: 514) в орг. apache .log4j.PropertyConfigurator.doConfigure (PropertyConfigurator. java: 580) в орг. apache .log4j.helpers.OlectConverter OptionConverter. java: 526) в org. apache .log4j.LogManager. (LogManager. java: 127) в org.slf4j.impl.Log4jLoggerFactory. (Log4jLoggerFactory. java: 66) в org.slf4j .impl.StaticLoggerBinder. (Санкт aticLoggerBinder. java: 72) в org.slf4j.impl.StaticLoggerBinder. (StaticLoggerBinder. java: 45) в org.slf4j.LoggerFactory.bind (LoggerFactory. java: 150) в org.slf4j.Logger. executeInitialization (LoggerFactory. java: 124) в org.slf4j.LoggerFactory.getILoggerFactory (LoggerFactory. java: 412) в org.slf4j.LoggerFactory.getLogger (LoggerFactory. java: 3574) в org.s .getLogger (LoggerFactory. java: 383) в com.abcd.Application. (Приложение. java: 8) Вызывается: java .lang.NoSuchMethodException: com.abcd.util.HDFSFileAppender. () в java .lang.Class.getConstructor0 (Class. java: 3082) в java .lang.Class.newInstance (Class. java: 412) ... еще 18

Это мой My Appender, который я создал

    public class HDFSFileAppender extends AppenderSkeleton {
    private String filepath = null;
    private Layout layout = null;

    public HDFSFileAppender(String filePath, Layout layout) {

        this.filepath = filePath;
        this.layout = layout;
    }
...............
...