我应该将log4j.properties文件放入库中吗?

时间:2015-06-30 12:18:50

标签: java jar

我有一个图书馆项目。该项目使用log4j进行日志记录。

我应该将log4j.properties放入生成的jar吗? 如果这不是一个好习惯,你能告诉我为什么吗?

2 个答案:

答案 0 :(得分:5)

您应该将log4j.properties放在jar文件之外,因为它更容易修改它。如果应用程序没有强制重新加载配置(你可以这样做),那么简单的重启将加载配置(在jar文件中修改它通常意味着重建)。如果应用程序确实知道如何重新加载它,那么您的更改几乎会立即应用。 当您在生产环境中具有应用程序时,这非常重要,并且您希望更改日志记录设置(如日志级别)以获取更多信息但不要为此停止应用程序(或者更糟糕的是,重建它)。

答案 1 :(得分:1)

不,我不会在log4j.properties中添加src/main/resources如果它只是一个图书馆 - 人们会使用您的图书馆,人们必须配置它应该如何记录。

但还有另一个问题:如果你把它放在你的jar中,其他人也会在他们的类路径中有log4j。因此,如果他们想要为log4j进行自定义配置(他们将这样做),ClassLoader将选择它可以找到的第一个文件。

另外,如果你有一个库,我建议改用slf4j,这样你的用户就可以选择自己喜欢的日志框架了。

对于测试用户,可以在src/test/resources中包含log4j。