写入Delphi中的事件日志

时间:2008-12-29 15:35:33

标签: delphi

如何让应用程序将调试文本写入Delphi IDE中的事件日志窗口(Borland Developer Studio 2006)?

如何更改文字的颜色?

4 个答案:

答案 0 :(得分:26)

OutputDebugString( '你好,世界');

我认为您可能需要将Windows添加到“使用”列表中。不是100%肯定...

据我所知,文本颜色无法更改:这是Delphi IDE的一个功能,它在该窗口中添加了额外的消息,用于线程启动/停止,DLL加载/卸载,以及它们自己的特定颜色。 / p>

答案 1 :(得分:8)

是的,您可以使用OutputDebugString

如果您想获得更强大的功能来控制和管理调试输出,例如突出显示过滤器,则应使用DebugView

注意:在Delphi IDE中运行应用程序时,DebugView无法捕获调试日志。

答案 2 :(得分:6)

procedure Write2EventLog(Source,Msg: string);
var h: THandle;
    ss: array [0..0] of pchar;
begin
    ss[0] := pchar(Msg);
    h := RegisterEventSource(nil,  // uses local computer
             pchar(Source));          // source name
    if h <> 0 then
      ReportEvent(h,           // event log handle
            EVENTLOG_ERROR_TYPE,  // event type
            0,                    // category zero
            0,        // event identifier
            nil,                 // no user security identifier
            1,                    // one substitution string
            0,                    // no data
            @ss,     // pointer to string array
            nil);                // pointer to data
    DeregisterEventSource(h);
end;

答案 3 :(得分:3)

除了已经说过的内容(例如OutputDebugString并使用DebugView而不是内置日志查看器)之外,您还可以通过选项更改日志视图中消息的颜色。最简单的方法是右键单击日志窗格,然后从上下文菜单中选择“属性”。在将出现的选项卡上,您可以从“颜色”部分设置用于“输出调试字符串”的颜色。显然,这将改变通过OutputDebugString发出的所有消息的颜色 - 它不允许单独着色。为此,您最好使用DebugView的过滤器。