加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何将我的logback.xml作为系统属性传递给我的akka??应

发布时间:2020-12-16 08:44:17 所属栏目:安全 来源:网络整理
导读:我有一个akka应用程序,我希望打包为uberjar.如果我打包我的应用程序,logback.xml会出现在jar的根目录中,但是当我启动应用程序时,我在配置日志中出现错误,因为“URL x不是类型文件
我有一个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配置不应该在jar中,因为它可能导致冲突.我想要做的是打包并运行我的应用程序,在运行时传入logback.xml,例如

java -Dlogback.configurationFile=/full/path/to/logback.xml -jar myapplication.jar

当像这样运行时,日志记录配置会回退到默认状态,最终我会在控制台中显示actor日志(当通过maven运行时,它都按预期工作).告诉我我错过了什么:)

解决方法

是的,将logback.xml文件打包到胖jar中并不是一个好主意.它的目的是让它在运行时配置.如果你使用sbt来组装jar,你可以指定目录&通过添加到unmanagedJars来不包含的文件.例如:

编译中的unmanagedJars< = baseDirectory map {dir =>
??(dir **“logback.xml”).classpath
}

然后你应该能够在运行时通过在-cp(classpath)或-jar之后包含它来传递它.例如:

java -jar -Dlogback.configurationFile = / full / path / to / logback.xml myapplication.jar

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读