2016-01-26 42 views
0

我正在編寫一個進度中的小程序,需要向系統的標準錯誤寫入錯誤消息。什麼方法,儘可能簡單,我可以使用打印到標準錯誤?我正在使用OpenEdge 11.3。寫入標準錯誤

回答

1

在Windows(+ 102億),你可以使用.NET:

System.Console:Error:WriteLine ("This is an error message") . 

連同

prowin32 2> stderr.out 
+0

是的,這是完美的!我希望有一種方法可以用「原生」進度語言來執行這種類型的動作,但是這樣做巧妙地謝謝你! – PrestonM

1

進度不提供寫入stderr的方法 - 我能想到的最簡單的方法是通過一個外部程序輸出stdin並將其回送到stderr。

0

你可以看看LOG-MANAGER:寫消息。它不會記錄到標準輸出或標準錯誤,而是記錄到客戶端特定日誌。在任何情況下都應監視此日誌(特別是如果客戶端是應用程序服務器)。

從文檔:

對於交互式或批處理客戶端時,WRITE-MESSAGE()方法寫入的日誌條目由LOGFILE-NAME屬性或客戶端登錄(-clientlog指定的日誌文件)啓動參數。對於WebSpeed代理和AppServer服務器,WRITE-MESSAGE()方法將日誌條目寫入服務器日誌文件。對於DataServers,WRITE-MESSAGE()方法將日誌條目寫入由DataServer日誌記錄(-dslog)啓動參數指定的日誌文件。

LOG-MANAGER:WRITE-MESSAGE("Got here, x=" + STRING(x), "DEBUG1"). 

將在日誌中這樣寫:

[04/12/[email protected]:19:19.742-0500] P-003616 T-001984 1 4GL DEBUG1 Got here, x=5 

有相當多的關於LOG-Manager系統,顯示什麼消息,該文件被放置等

選項
0

有沒有簡單的方法,但在unixen你總是可以這樣做(未經測試):

output through "cat >&2" no-echo unbuffered. 

或者 - 這是測試 - 如果你只是想從一個批處理模式程序錯誤消息要到標準輸出,然後

output through "tee" ... 

...肯定能行。

相關問題