2013-06-11 10 views
5

Ich habe verschiedene Console.Out.Write() Anweisungen für Debugging-Zwecke in einer Windows-Dienstanwendung hinzugefügt, die ich beim Testen als Konsolenanwendung ausführen. Ist es schädlich, diese Anweisungen bei der Bereitstellung der Anwendung als Dienst zu hinterlassen? (Die Debugging-Informationen sind nicht empfindlich, es ist mir egal, ob Benutzer sie zufällig finden und sehen)Wohin geht Console.Out.Write() für einen Windows-Dienst?

Gibt es auch eine Möglichkeit, die Konsolenausgabe eines bestimmten Dienstes anzuzeigen, während dieser ausgeführt wird?

+0

Console.WriteLine ?? –

+2

Der Nachteil ist, dass Ihr Code langsamer als nötig läuft. Sie werden es nie sehen, zumindest Debug.Print() oder eine Logging-Bibliothek verwenden, um die Option zu haben, es komplett zu deaktivieren oder es zu sehen, wenn es nötig ist, weil es ein Problem gibt. –

+0

@BhushanFirake Console.WriteLine() oder Console.Out.WriteLine() anwenden. Irgendwelche Unterschiede in diesem Zusammenhang sollte mir bewusst sein? – invertigo

Antwort

2

Gibt es irgendwelche Nachteile beim Zurücklassen dieser Anweisungen, wenn die Anwendung als Dienst bereitgestellt wird?

Es wird Ihnen keine Exception angezeigt, wenn Sie es auf Console drucken. Auf diese Weise werden Sie in völliger Dunkelheit über Fehler und Ausnahmen informiert sein.

Gibt es eine Möglichkeit, die Konsolenausgabe eines bestimmten Dienstes anzuzeigen, während dieser ausgeführt wird?

Ja, sicher. Sie können die Ausgabe im Ausgabefenster anzeigen, nachdem Sie sie mit Debug.Print() oder Debug.WriteLine() ausgedruckt haben.

Sie beide das gleiche tun, aber Debug.Print() dauert nur einen String, während Debug.WriteLine() wird ein Objekt übernehmen, die die ToString() Methode des Objekts aufrufen endet.

IMHO, sollten Sie entweder eine Art von Protokollierung statt alle diese zu drucken. Sie können die Protokolle jederzeit sehen, aber Sie werden nicht in der Lage sein, die Konsolenausgabe ständig zu sehen und zu sehen .. !!

+0

danke für die Information. Ich weiß, dass es bessere Möglichkeiten gibt, um Informationen, Fehler usw. zu protokollieren, aber das ist nicht wirklich das, wonach ich in diesem Fall suche. Ich bin neugieriger, wenn es ein absolutes "Bedürfnis" gibt, Legacy-Code zu durchlaufen, um Fälle zu entfernen, in denen Entwickler (ich selbst eingeschlossen) die WriteLine() -Anweisungen hinzugefügt haben, um Ausnahmen nicht zu fangen und aufzudecken, sondern Informationen auszudrucken, die nur relevant sind Entwicklung. – invertigo

+1

@invertigo Ich füge auch Konsolenausgaben bis zur Bereitstellung hinzu. Aber sobald es oben ist, drücke ich Strg + F, dann ersetzen Sie alle 'Console.WriteLine's zu' Debug.Print's ..: P –

Verwandte Themen