Mat*_*one 8 logging scala logback slf4j sbt
我一直在尝试解决我的日志记录情况(如何使用SBT和Scala正确管理开发和生产中的logback配置?),我遇到了一个有趣的问题.
根据logback文档,在检查logback-test.xml之前进行logback检查logback.xml.
我有以下文件:
src/main/resources/logback.xmlsrc/test/resources/logback-test.xml所以我认为在跑步sbt test时它会看起来像logback-test.xml.在intellij(管理测试执行本身)中也是如此,但从命令行运行时似乎不是这样.
我重命名了我的logback.xml并打开了logback调试,这是输出.显然,它正在以相反的顺序查找文件:
14:58:21,203 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [/home/rathboma/Projects/personal/beekeeper/src/main/resources/logback.xml]
14:58:21,206 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
14:58:21,206 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback-test.xml] at [file:/home/rathboma/Projects/personal/beekeeper/target/scala-2.10/test-classes/logback-test.xml]
Run Code Online (Sandbox Code Playgroud)
我猜测这是因为测试资源在test-classes目录中,但我不知道如何正确修复它.
第二,供应-Dlogback.configurationFile=config/logback-#{environment}.xml似乎没有做任何事情,它真的忽略了它.
有什么想法吗?
我假设你没有任何拼写错误,因为它与 intellij 一起使用。
Logback 将尝试加载logback-test.xml常规的,然后正常的会看到这一点。通过尝试加载,我的意思是它将让类加载器运行到正在运行的类(应该是测试类)并在资源中查找它。检查(例如通过打印)资源的路径并验证 xml 文件是否存在。默认情况下,sbt 应确保您的测试资源在测试执行期间可用(请参阅此处)。如果您更改了构建 sbt 的非托管资源或测试任务依赖项,它可能不会被复制。
最后,如果您仍然没有找到问题(这会很奇怪),我相信您应该启动一个干净的项目来检查问题是否仍然存在,如果没有,您应该清理 intellij 中的缓存。仍然发现问题吗?抱歉无法提供帮助,也许您的 sbt 安装或版本有问题?
| 归档时间: |
|
| 查看次数: |
1068 次 |
| 最近记录: |