Announcement

Collapse
No announcement yet.

Einfache Debug Console

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Einfache Debug Console

    Hallo,
    Ich brauche eine Console für Debug Ausgaben aus meiner Applikation. Diese sollte unter
    #if (DEBUG)
    erzeugt werden und im Release nicht mehr erscheinen.
    Dummerweise habe ich bis jetzt keinen Hinweis auf sowas im Netz gefunden.
    Wer kann helfen?
    Danke
    Pat

  • #2
    Hallo,

    wenn es nur darum geht, während der Programmausführung bestimmte Statusmeldungen zu Gesicht zu bekommen, hilft die <b>Trace</b>-Klasse aus dem Namespace <b>System.Diagnostics</b> weiter. Über die Methode <b>WriteLine</b> wird eine Zeichenkette zur Laufzeit im Output-Fenster von Microsoft Visual Studio .NET ausgegeben. Über die Methoden <b>Indent</b> und <b>Unintend</b> kann man dabei sogar Einrückungen unterbringen. Der Trace-Output kann auf andere Ziele umgeleitet werden. Und da über die <b>.config</b>-Datei der Anwendung auch eine Option für die schnelle Konfigurationsänderung beim Anwender vor Ort zur Verfügung steht, lässt sich jederzeit vor Ort diese Protokollfunktion ein- und ausschalten.
    <pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
    &lt;configuration&gt;
    &lt;system.diagnostics&gt;
    &lt;switches&gt;
    &lt;add name=&quot;OSDebugTraceSwitch&quot; value=&quot;1&quot; /&gt;
    &lt;/switches&gt;
    &lt;/system.diagnostics&gt;
    &lt;/configuration&gt;</pre>
    Wenn danach im eigenen Programm eine Instanz der <b>BooleanSwitch</b>-Klasse für diesen Switch erzeugt wird, kann über die BooleanSwitch-Eigenschaft <b>Enabled</b> die Trace-Ausgabe in die Datei je nach der Einstellung in der .config-Datei jederzeit ein- beziehungsweise ausgeschaltet werden. Damit die Trace-Meldungen nicht nur im Output Window von Visual Studio .NET sichtbar sind, aktiviere ich einen zusätzlichen <b>TextWriterTraceListener</b>, der alle Ausgaben auch in die festgelegte Textdatei schreibt.
    <pre>
    <b>static</b> BooleanSwitch aOSDebugTraceSwitch = <b>new</b> BooleanSwitch(<font color="#9933CC">&quot;OSDebugTraceSwitch&quot;</font>, <font color="#9933CC">&quot;TestApp&quot;</font>);
    <br>
    <b>private</b> <b>void</b> button3_Click(<b>object</b> sender, System.EventArgs e)
    {
    <b>string</b> sResult;
    sResult = DoWork(12.50, <font color="#9933CC">&quot;de-DE&quot;</font>);
    <b>if</b> (aOSDebugTraceSwitch.Enabled)
    {
    Trace.Listeners.Add(<b>new</b> TextWriterTraceListener(@<font color="#9933CC">&quot;C:\Temp\Trace.txt&quot;</font>));
    Trace.WriteLine(<font color="#9933CC">&quot;DoWork ist fertig&quot;</font>);
    Trace.Indent();
    Trace.WriteLine(<font color="#9933CC">&quot;Ergebnis: &quot;</font> + sResult);
    Trace.Unindent();
    Trace.WriteLine(Environment.OSVersion);
    Trace.Flush();
    }
    statusBar1.Text = sResult;
    }
    </pre&gt

    Comment


    • #3
      Hallo,

      wenn es nur darum geht, während der Programmausführung bestimmte Statusmeldungen zu Gesicht zu bekommen, hilft die <b>Trace</b>-Klasse aus dem Namespace <b>System.Diagnostics</b> weiter. Über die Methode <b>WriteLine</b> wird eine Zeichenkette zur Laufzeit im Output-Fenster von Microsoft Visual Studio .NET ausgegeben. Über die Methoden <b>Indent</b> und <b>Unintend</b> kann man dabei sogar Einrückungen unterbringen. Der Trace-Output kann auf andere Ziele umgeleitet werden. Und da über die <b>.config</b>-Datei der Anwendung auch eine Option für die schnelle Konfigurationsänderung beim Anwender vor Ort zur Verfügung steht, lässt sich jederzeit vor Ort diese Protokollfunktion ein- und ausschalten.
      <pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
      &lt;configuration&gt;
      &lt;system.diagnostics&gt;
      &lt;switches&gt;
      &lt;add name=&quot;OSDebugTraceSwitch&quot; value=&quot;1&quot; /&gt;
      &lt;/switches&gt;
      &lt;/system.diagnostics&gt;
      &lt;/configuration&gt;</pre>
      Wenn danach im eigenen Programm eine Instanz der <b>BooleanSwitch</b>-Klasse für diesen Switch erzeugt wird, kann über die BooleanSwitch-Eigenschaft <b>Enabled</b> die Trace-Ausgabe in die Datei je nach der Einstellung in der .config-Datei jederzeit ein- beziehungsweise ausgeschaltet werden. Damit die Trace-Meldungen nicht nur im Output Window von Visual Studio .NET sichtbar sind, aktiviere ich einen zusätzlichen <b>TextWriterTraceListener</b>, der alle Ausgaben auch in die festgelegte Textdatei schreibt.
      <pre>
      <b>static</b> BooleanSwitch aOSDebugTraceSwitch = <b>new</b> BooleanSwitch(<font color="#9933CC">&quot;OSDebugTraceSwitch&quot;</font>, <font color="#9933CC">&quot;TestApp&quot;</font>);
      <br>
      <b>private</b> <b>void</b> button3_Click(<b>object</b> sender, System.EventArgs e)
      {
      <b>string</b> sResult;
      sResult = DoWork(12.50, <font color="#9933CC">&quot;de-DE&quot;</font>);
      <b>if</b> (aOSDebugTraceSwitch.Enabled)
      {
      Trace.Listeners.Add(<b>new</b> TextWriterTraceListener(@<font color="#9933CC">&quot;C:\Temp\Trace.txt&quot;</font>));
      Trace.WriteLine(<font color="#9933CC">&quot;DoWork ist fertig&quot;</font>);
      Trace.Indent();
      Trace.WriteLine(<font color="#9933CC">&quot;Ergebnis: &quot;</font> + sResult);
      Trace.Unindent();
      Trace.WriteLine(Environment.OSVersion);
      Trace.Flush();
      }
      statusBar1.Text = sResult;
      }
      </pre>
      Ergebnis siehe folgende Abbildung

      Comment

      Working...
      X