我在scala中遇到了SLF4J: Class path contains multiple SLF4J bindings
错误。我知道有很多关于此的论坛和讨论,这个警告不是我的问题。我可以通过排除build.sbt中有冲突的条目之一来摆脱警告。在我的情况下,冲突的软件包是org.slf4j
和ch.qos.logback
。因此,我可以通过在build.sbt中输入以下内容之一来消除警告。
libraryDependencies ~= {_.map(_.exclude("ch.qos.logback", "logback-classic"))}
或
libraryDependencies ~= {_.map(_.exclude("org.slf4j", "slf4j-log4j12"))}
我的问题是,当我摆脱此警告时,它使Windows命令提示符中的输出混乱(是的,这需要在Windows上运行)。
排除org.slf4j
会在命令窗口中显示奇怪的字符。这些字符不会显示在我的intelliJ控制台中。
如果我排除了ch.qos.logback
,则输出看起来不错,但命令提示符下不会显示低于错误级别的任何日志消息。
我想我想排除org.slf4j
,以便可以使用logback.xml
轻松配置记录器。有谁知道为什么在第一种情况下命令行上会有奇怪的字符以及如何解决它。
答案 0 :(得分:2)
那些怪异的符号是用于文本着色和格式设置的ANSI转义序列。您的logback布局配置可能启用了一些颜色。有关更多详细信息,请参见:https://logback.qos.ch/manual/layouts.html#coloring