2011-03-26 60 views
2

我正在通過JNA訪問OpenCV,當我的進程需要太長的時間時,opencv幀會打印一個「Camera dropped frame」消息。我的問題是它產生太多的消息,這使得控制檯無法用於我的日誌記錄目的。下面谷歌代碼搜索結果顯示,它在打印來清點,Java JNA將輸出重定向到記錄器

http://www.google.com/codesearch?hl=en&lr=&q=%22camera+dropped+frame%21%22&sbtn=Search

我試圖重定向都出來,寧可我的日誌,但我仍然可以打印到控制檯的消息是有擺脫他們的一種方式

 

     (System/setOut (proxy [java.io.PrintStream] [System/out] 
         (print [s] ;;(trace s) 
          ) 
         (println [s] ;;(trace s) 
           ) 
         )) 

     (System/setErr (proxy [java.io.PrintStream] [System/err] 
         (print [s] ;;(trace s) 
          ) 
         (println [s] ;;(trace s) 
           ) 
         )) 
 

回答

-2

由於您使用JNA交談的OpenCV這可能意味着,我認爲OpenCV的是一些本土的東西,可能甚至不知道的Java。下一個問題是它沒有Java API,爲什麼它會嘗試使用System.out打印消息?它可能調用操作系統的方式與默認的System.out用於將文本打印到控制檯的方式相同。

+0

System.out可以重定向到任何Stream。該領域不是最終的! – Daniel 2011-03-27 00:45:22

+0

System.out/err與C stdout/stderr不同,儘管它們很相似。例如,如果您要編寫一些JNI代碼,這會產生一些printf調用,您會發現它們不會通過System.out進行路由。 – technomage 2011-07-01 12:35:54