我有一个图书馆项目。该项目使用log4j进行日志记录。
我应该将log4j.properties放入生成的jar吗? 如果这不是一个好习惯,你能告诉我为什么吗?
答案 0 :(得分:5)
您应该将log4j.properties放在jar文件之外,因为它更容易修改它。如果应用程序没有强制重新加载配置(你可以这样做),那么简单的重启将加载配置(在jar文件中修改它通常意味着重建)。如果应用程序确实知道如何重新加载它,那么您的更改几乎会立即应用。 当您在生产环境中具有应用程序时,这非常重要,并且您希望更改日志记录设置(如日志级别)以获取更多信息但不要为此停止应用程序(或者更糟糕的是,重建它)。
答案 1 :(得分:1)
不,我不会在log4j.properties
中添加src/main/resources
如果它只是一个图书馆 - 人们会使用您的图书馆,人们必须配置它应该如何记录。
但还有另一个问题:如果你把它放在你的jar中,其他人也会在他们的类路径中有log4j。因此,如果他们想要为log4j进行自定义配置(他们将这样做),ClassLoader将选择它可以找到的第一个文件。
另外,如果你有一个库,我建议改用slf4j
,这样你的用户就可以选择自己喜欢的日志框架了。
对于测试用户,可以在src/test/resources
中包含log4j。