scala – 如何将我的logback.xml作为系统属性传递给我的akka??应
我有一个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 => 然后你应该能够在运行时通过在-cp(classpath)或-jar之后包含它来传递它.例如: java -jar -Dlogback.configurationFile = / full / path / to / logback.xml myapplication.jar (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |