2014-04-06 1 views
1

SBT + 스칼라 테스트 프로젝트가 있습니다. 지금 내 테스트는 다음과 같이 콘솔 무언가 로그인 :테스트 결과를위한 SBT 콘솔 인코딩

원인에 매우 유용 아니다
[info] - should do something *** FAILED *** 
[info] java.lang.Exception: ╧ЁштхЄ! 

가 ... 예외 텍스트가 키릴 문자에 내가 올바르게 표시 콘솔 스트림에 CP866 문자 집합을 설정해야합니다.

나는

Console.setOut(new PrintStream(System.out, true, "cp866")) 

을 시도했다 그러나 SBT는 그것을 무시합니다. SBT는 다양한 메시지 로깅을위한 자체 스트림을 구성하는 것으로 보이지만 어디에서 어떻게 변경해야하는지 알 수 없습니다 ..

사용자 정의 로거를 추가하는 데는 way이 있지만 과도합니다.

답변

1

해결책을 찾았습니다. 나는 정의 LogManager의

val customLogManager = LogManager.defaultManager(ConsoleOut.printStreamOut(new java.io.PrintStream(System.out, true, "cp866"))) 

를 만들고 프로젝트 설정에서 설정할 수 있습니다

logManager := customLogManager 

비록, 나는 그것이 가장 좋은 솔루션입니다 있는지 확실하지 않습니다. 하나의 결함은 모든 프로젝트에 대해 logManager 설정을 제공해야한다는 것입니다. 빌드 설정에서 상속하는 것은 어떤 이유로 작동하지 않습니다.