曾经想要实时监控您的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