java - 运行时发生log4j.PropertyConfigurator错误说找不到适合configure(FileInputStream)的方法

标签 java gradle log4j build.gradle

我在Log4j的构建阶段遇到以下错误。它说没有找到针对configure(FileInputSteam)的方法。
以下是错误的完整说明。
任务:compileJava失败

E:\GadleDemoProj\src\main\java\com\inspire\brands\helper\Logger\LoggerHelper.java:28: error: no suitable method found for configure(FileInputStream)
                        PropertyConfigurator.configure(inputStream);
                                            ^
    method PropertyConfigurator.configure(Properties) is not applicable
      (argument mismatch; FileInputStream cannot be converted to Properties)
    method PropertyConfigurator.configure(String) is not applicable
      (argument mismatch; FileInputStream cannot be converted to String)
    method PropertyConfigurator.configure(URL) is not applicable
      (argument mismatch; FileInputStream cannot be converted to URL)
我的记录器类如下:
 public class LoggerHelper {
    
    private static boolean root = false;
    
    public static Logger getLogger(Class clas) {
        if(root)
            return Logger.getLogger(clas);
        
        /*PropertyConfigurator.configure(ResourceHelper
                .getResourcePath("configfile/log4j.properties"));*/
        FileInputStream inputStream = null;
        try {
            inputStream = new FileInputStream(System.getProperty("user.dir")+"\\src\\main\\resources\\configFile\\log4j.properties");
            
            PropertyConfigurator.configure(inputStream);

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        root = true;
        return Logger.getLogger(clas);
    }

}

最佳答案

将代码更新为此:

public class LoggerHelper {
    
    private static boolean root = false;
    
    public static Logger getLogger(Class clas) {
        if(root)
            return Logger.getLogger(clas);
        
        /*PropertyConfigurator.configure(ResourceHelper
                .getResourcePath("configfile/log4j.properties"));*/
        FileInputStream inputStream = null;
        try {
            inputStream = new FileInputStream(System.getProperty("user.dir")+"\\src\\main\\resources\\configFile\\log4j.properties");
            Properties properties = new Properties();
            properties.load(inputStream);
            
            PropertyConfigurator.configure(properties);

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        root = true;
        return Logger.getLogger(clas);
    }

}

关于java - 运行时发生log4j.PropertyConfigurator错误说找不到适合configure(FileInputStream)的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63940801/

相关文章:

java - 如何使用 Eclipse 和 Apache CXF 使用从 WSDL 创建的 Java 类连接到工作日帐户

java - 是否可以从外部闪存驱动器运行 java (jdk-windows)、Eclipse (indigo) 和 Android-sdk 用于 android 应用程序开发

gradle - 我如何在 Gradle 任务上使用 inputs.property,但有一个值的闭包?

android - 为什么 dagger 2 生成的组件在项目重建时被删除?

java - log4j 写入控制台但不写入文件(Liferay + Tomcat)

java - 未使用 log4j 配置

java - 我的 log4j SiftAppender 不生成文件

java - 如何通过 Rest API 发送 JSONArray

java - 使用动态列表使用 jpa 2.0 构建条件查询

java - IntelliJ 下载源库 jar 错误