Java 如何让Log4j找到我的属性

Java 如何让Log4j找到我的属性,java,properties,log4j,Java,Properties,Log4j,我已将属性文件放在maven项目的resources目录中。 然后我使用属性配置器查看它: PropertyConfiguration.configurelog4j.properties 但是我得到了一个错误log4j:error无法读取配置文件[log4j.properties]。您可以通过两种方式执行此操作 很可能文件包含在jar中,所以 Properties props = new Properties(); props.load(getClass().getResourceAsStrea

我已将属性文件放在maven项目的resources目录中。 然后我使用属性配置器查看它: PropertyConfiguration.configurelog4j.properties


但是我得到了一个错误log4j:error无法读取配置文件[log4j.properties]。

您可以通过两种方式执行此操作

很可能文件包含在jar中,所以

Properties props = new Properties();
props.load(getClass().getResourceAsStream("/log4j.properties"));
PropertyConfigurator.configure(props);
如果不是

Properties props = new Properties();
props.load(new FileInputStream("log4j.properties"));
PropertyConfigurator.configure(props);

在pom.xml中,需要放置以下内容

 <log4jProperties>path/log4j.properties</log4jProperties>

在该路径下,您需要创建log4j.properties并将配置写入其中

如果您想提供固定路径,请尝试:-

Properties props = new Properties();

try {

    File file = new File("C:/log4j/log4j.properties");

    props.load(new FileInputStream(file));

} 

catch (FileNotFoundException ex) {
    java.util.logging.Logger.getLogger(KGLMainFrame.class.getName()).log(Level.SEVERE, null, ex);

} 
catch (IOException ex) {
        java.util.logging.Logger.getLogger(KGLMainFrame.class.getName()).log(Level.SEVERE, null, ex);
}

PropertyConfigurator.configure(props);