2013-05-14 47 views
9

Làm cách nào để chặn thông báo gỡ lỗi của SBT? Chúng được ghi vào stdout để chạy một dự án tạo ra điều này:Ngăn chặn đầu ra gỡ lỗi sbt

$ cat src/main/scala/Hello.scala 
object Hello { 
    def main(args: Array[String]) { 
    Console.println("Hello sbt") 
    } 
} 

$ sbt run > out.txt 

$ cat out.txt 
[info] Set current project to hello (in build file:/home/synapse/projects/algs2/) 
[info] Running Hello 
Hello sbt 
[success] Total time: 1 s, completed May 14, 2013 11:39:23 PM 
+1

Bạn đã bao giờ tìm thấy một giải pháp? Tôi đang đấu tranh với điều này là tốt. – dcb

+1

Có thể trùng lặp của [Làm cách nào để chặn thông tin và thông báo thành công trong sbt?] (Http://stackoverflow.com/questions/9968300/how-to-suppress-info-and-success-messages-in-sbt) –

Trả lời

1

Bạn có thể thay đổi mức ghi như mô tả here. Vì vậy, bạn có thể thay đổi mức độ khai thác gỗ để Warn:

> run 
[info] Running Server 
Port is: null 
Embedded server running on port 8080. Press any key to stop. 

[success] Total time: 3 s, completed 14-May-2013 21:02:31 
> 
> set logLevel in run := Level.Warn 
... 
[info] Reapplying settings... 
[info] Set current project to server (in build file:/Users/me/myproject/) 
> run 
Port is: null 
Embedded server running on port 8080. Press any key to stop. 

và bạn không còn nhận được những thông điệp thông tin in cho lệnh run. Bạn có thể thêm cài đặt vào tệp xây dựng của mình để đặt vĩnh viễn.

+7

Bản dựng .sbt bao gồm một dòng logLevel: = Level.Error và sbt chạy các kết quả đầu ra vẫn còn thông tin và thông báo thành công – synapse

6

Như đã đề cập trong this reference cũng được liên kết bằng câu trả lời khác, có thể thay đổi mức ghi nhật ký trước khi đến bảng điều khiển sbt.

"Để đặt mức ghi nhật ký trước khi bất kỳ lệnh nào được thực hiện khi khởi động, hãy sử dụng -- trước cấp ghi nhật ký".

Ví dụ

$ sbt --error "runMain my.pckg.Main" 

Tuy nhiên bạn vẫn nhận được thông báo [success] đăng nhập ở cuối. Để tắt tiếng, hãy xem xét đường ống vào grep -v.

+0

'[success]' có thể được loại bỏ bằng cách thêm 'showSuccess: = false' vào' build.sbt' của bạn. –

0

Bạn có thể thêm thuộc tính Cấp độ nhật ký vào thuộc tính SBT toàn cầu. này làm việc cho SBT phiên bản 1.x

File: ~/.sbt/1.0/global.sbt
logLevel := Level.Warn 

shellPrompt := { state => 
    "sbt (%s)> ".format(Project.extract(state).currentProject.id) 
} 
Các vấn đề liên quan