最近做了一个封装接口api的项目,最终输出的是供别人调用的jar包,我希望这个jar能独自记录自己部分的日志。
那必然配置了log4j.properties,问题来了。log4j.properties放什么路径,jar里面的类才能正常读取初始化呢?
我试了下面好几种方案:
1.放在src/main/resources路径下,直接运行接口工程的方法能自动初始化log4j,读取log4j配置文件,但是打包成jar包被其他功能调用时,读取不了log4j配置文件。
2.放在工程根路径下,然后在初始化类时用PropertyConfigurator.configure("log4j.properties");读取配置文件。这种情况依然是运行接口工程的方法能成功初始化log4j,但是打包成jar供其他工程调用时还是不行。
3.最后我使用的是把properties文件放在外部的路径,配置文件放在System.getProperty("user.home")路径,用PropertyConfigurator.configure(user.home绝对路径);初始化。成功记录日志。
我认为最理想的做法是放在包内路径,打包时默认打到里面。但是不知为何前两种都存在路径问题,暂时使用了第三种方法,如果有同行能指点下,欢迎在评论留言。