2013-12-18 55 views
0

我的構建使用a library運行Grunt進行js/css縮小。我通過定義一個咕task任務來製作一個基本的sbt包裝器,所以當我在sbt控制檯中運行「grunt」時,它會在我的項目資源中通過Node.js運行。從構建內使用SLF4J

我正在使用的庫正在通過SLF4J進行日誌記錄。 (使用SLF4J的ClassLoader查找機制。) 如何爲它提供SLF4J記錄器,以便將輸出記錄到sbt控制檯?

我已經試過的一件事是從SLF4J寫一個簡單的StaticLoggerBinder實現,並將其放入.my_project/project/src/main/scala/org/slf4j/impl/StaticLoggerBinder.scala。 但是,類加載器(sbt's或slf4j的)無法在類路徑中找到它...

+1

你應該使用SBT的日誌記錄API,如果你是SBT內。這種方式的任務輸出將與'最後一個'任務一起工作。有關示例,請參閱:http://www.scala-sbt.org/0.13.0/docs/Howto/logging.html#log。您應該能夠使用Process API將grunt進程直接傳送到sbt記錄器。 – jsuereth

+0

感謝您的回答!問題是,我使用的庫,通過設計,通過SLF4J記錄(所以它可以從多個構建工具中使用 - 例如Maven提供自己的記錄器實現,與sbt的實現不同,但Maven的日誌和SLF4J之間有一個brigde,這很容易,Gradle直接使用SLF4J就我所知。)我不確定sbt是否存在相同的情況? –

+0

我不這麼認爲。但是,如果你想貢獻它,這(橋)聽起來像是一個有用的插件。 – jsuereth

回答

2

在那裏我們去了,我解決了它。我爲它寫了一個圖書館。 :-) 您可以在您的設置中引入磁帶庫,引導SLF4J並關閉您!

https://github.com/eirslett/sbt-slf4j