Ary*_*rya 7 java eclipse log4j
我正在使用eclipse,我将log4j.properties放在项目目录中,然后通过调用访问它
PropertyConfigurator.configure("log4j.properties");
Run Code Online (Sandbox Code Playgroud)
这在Eclipse中运行良好,但当我将项目作为可执行Jar提取并在另一台机器上运行时,我收到一条错误消息,说它无法找到log4j.properties.这是什么解决方案?
PropertyConfigurator.configure(String)从文件系统加载和读取文件.您的属性文件位于项目目录中,当您从eclipse运行时,该目录将成为"当前工作目录".
将所有内容打包到jar中并进行部署后,只将类文件和"资源"放入jar中.资源是源树下的非java文件.
将jar文件复制到另一台计算机后,属性文件不再存在.
由于您的属性文件不是资源,因此您需要单独移动它:在目标主机的当前工作目录中将其副本放在文件系统上(以便进行编辑,更新等)运行环境.
考虑将其放在文件系统的某个公共区域中:例如在/tmp/log4j.properties或〜/ .myproject/log4j.properties中.因此,您的代码必须进行调整以查找它.
将属性文件复制到源树的根目录(/ src,默认).然后将它包装在罐子里.将数据作为资源加载到jar文件中:PropertyConfigurator.configure(getClass().getResourceAsStream()).
在这种情况下,您不能简单地编辑文件来调整日志记录首选项.
很多时候会编写逻辑来确定属性文件是否在文件系统上,如果没有,则通过此机制从jar加载默认值.
| 归档时间: |
|
| 查看次数: |
9152 次 |
| 最近记录: |