曾經想要實時監控您的Delphi應用程序,並可以查看日誌消息嗎?固然,您始終能夠在RAD Studio IDE中以徹底調試模式運行。另外一種方法是輸出日誌消息,例如輸出到文本文件。您還可使用OutputDebugString函數。html
這種方法的一個優勢是它儘量少地影響您的應用程序。您沒必要關心文件處理。只需調用一個函數。windows
OutputDebugString函數在Win32 API中的RTL單元Winapi.Windows中定義。api
你只需從你的代碼中調用它,以下所示:網絡
.. uses Winapi.Windows; .. var Msg : string; begin OutputDebugString('This is my message'); Msg := 'This is another log message'; OutputDebugString(PChar(Msg)); ..
若是重複或循環調用OutputDebugString,可能會致使一些性能開銷。所以,請確保您的發佈版本中不包含對OutputDebugString的調用。要避免它,您可使用條件編譯指令,如:函數
.. (*$IFDEF ODS*) OutputDebugString('This is my message'); (*$ENDIF*) ..
只有在想以這種方式記錄消息時才激活編譯指令「ODS」。另外,考慮爲OutputDebugString調用建立一個包裝函數,這樣您的代碼將更易於閱讀和維護。像這樣的東西:性能
procedure DebugODS(const Msg : string); begin (*$IFDEF ODS*) OutputDebugString(PChar(Msg)); (*$ENDIF*) end;
若是從RAD Studio IDE中運行,日誌消息將顯示在輸出窗口中。url
可是若是你獨立運行,頗有可能使用SysInternals(Microsoft)提供的免費DebugView應用程序(dbgview.exe)。來自其網頁的信息:spa
DebugView是一個應用程序,它容許您監視本地系統或網絡上可經過TCP / IP訪問的任何計算機上的調試輸出。它可以顯示內核模式和Win32調試輸出,所以您不須要調試器來捕獲應用程序或設備驅動程序生成的調試輸出,也不須要修改應用程序或驅動程序以使用非標準調試輸出API。.net
上圖顯示了Pascal Analyzer應用程序的一些示例調試輸出。debug
正如您在屏幕截圖中看到的那樣,消息的前綴是時間戳和進程ID。閱讀有關DebugView的更多信息並在此處下載。
原文地址:https://www.peganza.com/delphi-and-outputdebugstring.html