【发布时间】:2014-08-01 13:48:41
【问题描述】:
我设法为 log4j 正确放置了一个配置文件,并使用以下命令指向它:
URL logProperties = Program.class.getResource("log.properties");
PropertyConfigurator.configure(logProperties.getFile());
(我认为它可以做得更简单,我阅读了一些关于默认属性文件的内容,但不是实际主题) 问题是:属性文件是从调用方法的类路径加载的,这很好,但我在配置中有类似:
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=console.log
我想知道“console.log”也在类路径中,但不幸的是它似乎在可执行文件的当前目录中(从 eclipse 启动,在 /bin 文件夹的父目录中)。
有没有办法在类路径中指定一个文件,当然没有像 log4net 那样指定完整路径?
编辑
通过这个 SO 问题What is the .NET equivalent of java's System.getProperty("user.dir")? 我了解了System.getProperty("user.dir") 的等价性
和.NET
Assembly.GetExecutingAssembly().Location
不幸的是,在我看来,编写 ${user.dir}/console.log 并没有任何区别(即日志似乎保留在当前目录中,而不是在可执行文件附近。
【问题讨论】: