我已经构建了一个 java 应用程序,并且一直在使用 slf4j/log4j 进行日志记录。我现在想为用户提供更改日志记录级别的可能性,而无需重新构建 .jar 文件。
我已经阅读过相关内容,要执行此操作,您的属性文件需要位于应用程序的类路径内。我尝试使用 MANIFEST.MF 文件中的 Class-Path header 来实现此目的,但它不起作用。
这是我尝试过的两个示例。
Class-Path:./config/
Class-Path:C:/users/user/directory/tools/config/
但是,这些似乎都没有添加到类路径中,因为我尝试在应用程序开始运行后打印其内容。
最佳答案
根据this question的建议,我最终在java执行命令中添加了一个参数。请记住,如果您像我一样通过 bash 命令执行,则需要添加目录的完整路径。
java -Dlog4j.configuration=file:/path/to/log4j.properties -jar myApp.jar
我不喜欢这个,因为它使它非常依赖于路径配置,但它就足够了。
关于java - 部署后 slf4j 优于 log4j 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34262821/