4

我创建了一个基于https://github.com/sbt/sbt-assembly的程序集 jar 项目,并希望在外部加载“logback.xml”和“application.conf”,这会覆盖 fatjar 中打包的默认文件。

与此类似的东西

  java -jar XXX.jar -Dlogger.resource=prod-logger.xml -Dconf.resource=application.conf

非常类似于 play 提供的http://www.playframework.com/documentation/2.0/SettingsLogger

这可以做到吗?如果可以,怎么做?

4

1 回答 1

0

Logback 配置说:

  1. Logback 尝试在类路径中查找名为 logback.groovy 的文件。
  2. 如果没有找到这样的文件,logback 会尝试在类路径中找到一个名为 logback-test.xml 的文件。
  3. 如果没有找到这样的文件,它会在类路径中检查文件 logback.xml。
  4. 如果两个文件都没有找到,logback 会使用 BasicConfigurator 自动配置自己,这将导致日志输出被定向到控制台。

所以如果你想在外部配置它,你需要访问类路径。-jar关于 java 的部分 - Java 应用程序启动器说:

使用此选项时,JAR 文件是所有用户类的来源,其他用户类路径设置将被忽略。

这包括-cp选项。因此,您所坚持的是使用java -cp XXX.jar:somedir Main并将您的配置放入somedir.

于 2013-08-24T01:25:21.293 回答