我有一个SBT + Scalatest项目。现在我的测试登录控制台,如下所示:
[info] - should do something *** FAILED ***
[info] java.lang.Exception: ╧ЁштхЄ!
这对原因不是很有用。异常文本在Cyrillic中,所以我必须在控制台流上设置cp866 charset才能正确显示它。
我试过
Console.setOut(new PrintStream(System.out, true, "cp866"))
但是SBT忽略了它。似乎SBT构建了自己的用于记录各种消息的流,但我无法找到改变它的位置和方式..
有一个way来添加自定义记录器,但这太过分了。
答案 0 :(得分:1)
我找到了解决方案。 我可以创建一个自定义LogManager
val customLogManager = LogManager.defaultManager(ConsoleOut.printStreamOut(new java.io.PrintStream(System.out, true, "cp866")))
并在项目设置中设置:
logManager := customLogManager
虽然,我不确定它是否是最佳解决方案。一个缺陷是您必须为每个项目提供logManager设置。从构建设置继承它不会因某种原因而起作用。