我已经基于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
可以这样做,如果是这样的话?
答案 0 :(得分:0)
- Logback尝试在类路径中查找名为logback.groovy的文件。
- 如果未找到此类文件,则logback会尝试在类路径中查找名为logback-test.xml的文件。
- 如果未找到此类文件,则会检查类路径中的文件logback.xml。
- 如果找不到任何文件,则logback会自动使用BasicConfigurator自行配置,这将导致日志输出定向到控制台。
醇>
因此,如果您想在外部配置它,则需要访问类路径。 -jar
section on java - the Java application launcher说:
使用此选项时,JAR文件是所有用户类的源,并忽略其他用户类路径设置。
这包括-cp
个选项。因此,您坚持使用java -cp XXX.jar:somedir Main
并将配置放在somedir
。