java - 部署后 slf4j 优于 log4j 配置

标签 java log4j slf4j

我已经构建了一个 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/

相关文章:

ant - Ivy 检索导致 "module not found: org.slf4j#slf4j-api;${slf4j.version}"

grails - 在 grails config.groovy 中使用 'grails.logging.jul.usebridge'

java - super() 调用 Java API 的切入点

java - 为什么HK2要重新打包所有东西?

java - 为什么 log4j 不记录到我用 log4j.xml 文件配置的文件?

java - Log4j2 SyslogAppender 不工作

java - 如何以编程方式重命名 Eclipse 插件菜单

java - 延迟setText标签java的问题

Log4j : Multiple loggers, 级别和附加程序

email - Logback SMTPAppender 不适用于 gmail 配置