测试结果的SBT控制台编码

测试结果的SBT控制台编码,sbt,scalatest,Sbt,Scalatest,我有一个SBT+规模最大的项目。现在,我的测试登录到控制台,如下所示: [info] - should do something *** FAILED *** [info] java.lang.Exception: ╧ЁштхЄ! 那当然没什么用处。。异常文本是西里尔文,所以我必须在控制台流上设置cp866字符集才能正确显示它 我试过了 Console.setOut(new PrintStream(System.out, true, "cp866")) 但SBT忽略了这一点。SBT似乎构建

我有一个SBT+规模最大的项目。现在,我的测试登录到控制台,如下所示:

[info] - should do something *** FAILED *** 
[info] java.lang.Exception: ╧ЁштхЄ!
那当然没什么用处。。异常文本是西里尔文,所以我必须在控制台流上设置cp866字符集才能正确显示它

我试过了

Console.setOut(new PrintStream(System.out, true, "cp866"))
但SBT忽略了这一点。SBT似乎构建了自己的流来记录各种消息,但我找不到在哪里以及如何修改它

有一种方法可以添加自定义记录器,但这太过分了。

我找到了一种解决方案。 我可以创建一个自定义日志管理器

val customLogManager = LogManager.defaultManager(ConsoleOut.printStreamOut(new java.io.PrintStream(System.out, true, "cp866")))
并在项目设置中进行设置:

logManager := customLogManager
不过,我不确定这是否是最好的解决方案。一个缺陷是您必须为每个项目提供logManager设置。由于某些原因,从生成设置继承它不起作用