实例化自定义Appender时获取“ log4j:ERROR无法实例化附加程序”

时间:2020-04-15 12:56:03

标签: properties log4j appender

下面是出现问题的完整详细信息文件,我不确定我是否正确初始化了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:ERROR无法实例化类 [com.abcd.util.HDFSFileAppender]。 java.lang.InstantiationException: com.abcd.util.HDFSFileAppender位于 java.lang.Class.newInstance(Class.java:427)在 org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:337) 在 org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:124) 在 org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:785) 在 org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) 在 org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648) 在 org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514) 在 org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580) 在 org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526) 在org.apache.log4j.LogManager。(LogManager.java:127)在 org.slf4j.impl.Log4jLoggerFactory。(Log4jLoggerFactory.java:66) 在 org.slf4j.impl.StaticLoggerBinder。(StaticLoggerBinder.java:72) 在 org.slf4j.impl.StaticLoggerBinder。(StaticLoggerBinder.java:45) 在org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)处 org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124) 在org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412) 在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)处 org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)位于 com.abcd.Application。(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个

这是我创建的我的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;
    }
...............

0 个答案:

没有答案