加载特性从WEB-INF文件夹中的文件在Log4j追加(Loading properties fil

2019-10-16 13:44发布

我们写我们的应用程序自定义的Log4j Appender。 该附加器应记录其事件的数据库。 现在我遇到的问题是建立数据库连接。 我们的JDBC设置在其中直接在WEB-INF文件夹位于一个名为jdbc.properties。

我试着用下面的代码访问的属性文件

InputStream stream = Thread.currentThread().getContextClassLoader()
                    .getResourceAsStream("jdbc.properties");

......但流的结果是零。 任何想法如何,我可以加载一个属性从WEB-INF文件夹中的文件在Log4j追加程序,而无需移动属性文件到另一个位置?

Answer 1:

可能是你可以试试,

 String  path =Thread.currentThread().getContextClassLoader().getResource("/").toURI().resolve("../jdbc.properties").getPath();
 Properties ps=new Properties();
 ps.load(new FileInputStream(path));


Answer 2:

您应该能够通过ServletContext中获取文件。 即:

ServletContext ctx = ...
InputStream stream = ctx.getResourceAsStream("/WEB-INF/jdbc.properties"); 

好吧,只是看见了,你没有访问ServletContext的 - 忘记了答案。

难道就没有可能添加信息的JDBC连接到log4j.properties? 你为什么要分离该二号呢?



文章来源: Loading properties file from WEB-INF folder in a log4j appender