Chi*_*nex 5 scala jar logback maven akka
我有一个 akka 应用程序,我希望将其打包为 uberjar。如果我打包我的应用程序,logback.xml 会出现在 jar 的根目录中,但是当我启动我的应用程序时,我在配置日志中收到一个错误,因为“URL x 不是文件类型!” 其中 x 是一个看起来像的网址
jar:file:/path/to/jar!logback.xml
Run Code Online (Sandbox Code Playgroud)
这是因为 logback 文件已归档,因此无法作为文件访问,这正是 logback 所期望的。我对此很好,因为 logback 配置不应该出现在 jar 中,因为它可能会导致冲突。我想要做的是打包并运行我的应用程序,在运行时传入 logback.xml,例如
java -Dlogback.configurationFile=/full/path/to/logback.xml -jar myapplication.jar
Run Code Online (Sandbox Code Playgroud)
当像这样运行时,日志配置会回退到默认值,最终我的控制台中会出现演员日志(通过 maven 运行时,一切都按预期工作)。告诉我我错过了什么:)
小智 2
logback.xml是的,将文件打包到 fat jar 中并不是一个好主意。它的目的是在运行时配置它。如果您用于sbt组装 jar,则可以通过添加到 来指定不包含的目录和文件unmanagedJars。例如:
unmanagedJars in Compile <++= baseDirectory map { dir =>
(dir ** "logback.xml").classpath
}
然后您应该能够在运行时通过将其包含在-cp(classpath) 或-jar. 例如:
java -jar -Dlogback.configurationFile=/full/path/to/logback.xml myapplication.jar
| 归档时间: |
|
| 查看次数: |
981 次 |
| 最近记录: |