Wer kennt es nicht, in der Entwicklungsumgebung funktioniert die programmierte Software einwandfrei, auf einem anderen Testrechner aus unbekannten Gründen leider nicht mehr.
Um den Fehler schnell zu finden bieten sich Logfiles an. Gut dass .Net von Haus aus die Klasse Trace im namespace System.Diagnostics eine Lösung bietet.
Eine kleines Beispiel:
- in der App.config den Tracer hinzufügen:
1234567891011121314151617<?xml version="1.0" encoding="utf-8"?><configuration><configSections></configSections><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup><system.diagnostics><trace autoflush="true" indentsize="4"><listeners><add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="application.log" /><remove name="Default" /></listeners></trace></system.diagnostics></configuration>
- Neue statische Classe erstellen:
12345678910111213141516171819202122232425262728293031323334353637using System;using System.Diagnostics;namespace MEINNAMESPACE{public static class Logger{public static void Error(string message, string module){WriteEntry(message, "error", module);}public static void Error(Exception ex, string module){WriteEntry(ex.Message, "error", module);}public static void Warning(string message, string module){WriteEntry(message, "warning", module);}public static void Info(string message, string module){WriteEntry(message, "info", module);}private static void WriteEntry(string message, string type, string module){Trace.WriteLine(string.Format("{0},{1},{2},{3}",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),type,module,message));}}}
Nun kann man mit z.B: Logger.Info(„Programmstart“,“Main“) im Programmcode Informationen an die application.log Datei anhängen. Das tolle auch das Datum wird nun mit übertragen.
Login