gpt4 book ai didi

scala - 如何将我的 logback.xml 作为系统属性传递到我的 akka 应用程序中?

转载 作者:行者123 更新时间:2023-12-01 05:05:57 28 4
gpt4 key购买 nike

我有一个 akka 应用程序,我希望将其打包为 uberjar。如果我打包我的应用程序,logback.xml 会出现在 jar 的根目录中,但是当我启动我的应用程序时,我在配置日志中收到一个错误,因为“URL x 不是文件类型!”其中 x 是一个看起来像的网址

jar:file:/path/to/jar!logback.xml

(此处出现错误 https://github.com/qos-ch/logback/blob/master/logback-core/src/main/java/ch/qos/logback/core/joran/spi/ConfigurationWatchList.java#L90)

这是因为 logback 文件已归档,因此无法作为文件访问,这正是 logback 所期望的。我对此很好,因为 logback 配置不应该出现在 jar 中,因为它可能会导致冲突。我想要做的是打包并运行我的应用程序,在运行时传入 logback.xml,例如
java -Dlogback.configurationFile=/full/path/to/logback.xml -jar myapplication.jar

当像这样运行时,日志配置会回退到默认值,最终我的控制台中会出现 Actor 日志(通过 maven 运行时,一切都按预期工作)。告诉我我错过了什么:)

最佳答案

是的,打包 logback.xml 不是一个好主意文件到你的 fat jar 子里。在运行时配置它的意图。如果您正在使用 sbt为了组装 jar,您可以通过添加到 unmanagedJars 来指定不包含的目录和文件。 .例如:
unmanagedJars in Compile <++= baseDirectory map { dir =>
(dir ** "logback.xml").classpath
}

然后你应该能够在运行时通过在 -cp 之后包含它来传递它。 (类路径)或 -jar .例如:
java -jar -Dlogback.configurationFile=/full/path/to/logback.xml myapplication.jar

关于scala - 如何将我的 logback.xml 作为系统属性传递到我的 akka 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28728623/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com