我的Log4j的配置文件是放在classpath下的。但测试的时候总是会报错:java.io.FileNotFoundException: Log.properties (系统找不到指定的文件。)拿问高手知道是怎么回事?代码如下:Logger logger = Logger.getLogger(logFile);PropertyConfigurator.configure("Log.properties");

解决方案 »

  1.   

    默认log4j.properties 放到classpath目录就可以了
      

  2.   

    一般情况下新建一个config目录,配置文件放在config目录下,然后将config放到classpath下
      

  3.   

    PropertyConfigurator.configure("Log.properties");把绝对路径加进去就不会报错了
      

  4.   

    楼上两位都不对
    一般放在src/目录下就可以啦,编译完后就在classes目录下
      

  5.   

    在类中直接声明
    private final static Logger logger = Logger.getLogger(xxx.class);
      

  6.   

    怀疑是不是要这样:
    PropertyConfigurator.configure("/Log.properties");
    楼主试试
      

  7.   

    “PropertyConfigurator.configure("Log.properties");”
    此处你使用了相对路径(不是以"/"或"X:"开头),所以它会在当前工作路径下找如果你是用java.exe执行的程序,那就是在你执行java时的目录
    其他情况就很难说了,不过可以用System.getProperty("user.dir")获得简单的办法就是用绝对路径
      

  8.   

    properties 在这个属性文件里面啊
      

  9.   

    所谓的classpath是用来告诉jvm .java和.class在哪里的。而PropertyConfigurator.configure("Log.properties");他是告诉log4j要加载的配置文件在哪,这与classpath没有关系。你所要做的就是要搞清在你写以上代码时你的当前目录是在哪,一般来说当前目录都是你的包的上层目录。具体可以用下面代码得到:
    System.out.println(new File("").getAbsolutePath());
    System.out.println(System.getProperty("user.dir"));
    然后你就可以用“/”进入到下一级目录用“.”到上一级目录了。   
      

  10.   

    一种是加载全路径,一种是放在src下面,然后会自动编译到\WEB-INF\classes下面
      

  11.   

    不过好像.properties和.xml有一点区别,忘了
      

  12.   

    放在项目中的任何位置都可以,只是在用
    PropertyConfigurator.configure(String configFilePath);的时候注意正确位置就可以了
    如果是放在项目根目录下,用PropertyConfigurator.configure("log4j.property");就可以了
    否则就要用PropertyConfigurator.configure("XXX/XXX/log4j.property");这样的方式了
    此位置是相对于项目根目录的位置