nehmen diese Klasse:Was ist das beste Design in dieser Klasse?
public class Logger
{
static TextWriter fs = null;
public Logger(string path)
{
fs = File.CreateText(path);
}
public static void Log(Exception ex)
{
///do logging
}
public static void Log(string text)
{
///do logging
}
}
und ich habe dies wie zu verwenden:
Logger log = new Logger(path);
und dann Logger.Log()
verwenden, um sich, was ich will. Ich benutze nur einen Logger. ist die Frage: Ist das ein gutes Design? eine Klasse instanziieren und dann immer ihre statische Methode nennen? jeder Vorschlag Ertrag in besserem Design wird geschätzt.
bearbeitet basierend auf Marc ‚s Antwort:
ich in der letzten Zeile von Log spülen und es gibt keine Notwendigkeit für mich, um die Datei zu lesen, während es geöffnet ist, das Problem mit der Datei nicht sauber geschlossen ist richtig. Diese Klasse erfüllt einfach meine Anforderungen und es ist nicht notwendig, dafür threadsicher zu sein. Ich möchte nur den Instanziierungsteil lesen, ich sollte in den SetPath kommen, den du gesagt hast, irgendeinen Vorschlag zum Schließen der Datei?
Warum erfinden Sie das Rad neu? : Verwenden Sie log4Net statt –
Versuchen Sie die Verwendung eines singulären Loggers zu erreichen? – BoltClock
@boltClock: ja –