2016-07-07 12 views
1

Gibt es eine gute Möglichkeit, die Protokollierung von einer Klasse auszuschließen?Wie kann die Protokollierung ausgeklammert werden?

Das einzige, was ich mir bewusst bin, ist, wenn die Protokollierung am Anfang/Ende methodA geschieht Sie die Protokollierung in einer Intermediaire Methode methodIntermediate Faktor und dann methodA von methodIntermediate nennen. Auf Klassenebene können Sie eine decorator verwenden und alle Anmeldungen im Decorator haben. Aber das würde nicht mit der Protokollierung helfen, die in der Mitte der Methode ist.

Ich denke nur, es ist hässlich, eine Klasse mit vielen Logging-Anweisungen eingestreut zu haben.

Antwort

1

Ich sehe keinen Weg um Aufnahme Informationen über etwas, was passiert, sei es gut oder schlecht, in einer Methode, wenn es tatsächlich passiert. Aber du musst dich nicht einloggen und dort. Eine Alternative, die ich mag, besteht darin, einfach eine Nachricht aufzuzeichnen und das Protokoll später zu erstellen.

public class LogsAreBad { 
    private String msg = ""; 
    // helper method which is never called directly 
    private void helper() { 
     boolean result = doSomething(); 
     if (!result) { 
      msg += "something went wrong in helper();"; 
     } 
    } 

    private void resetLog() { 
     msg = ""; 
    } 

    public int method() { 
     resetLog(); 
     helper(); 
     msg += "Someone accessed method()"; 
     logger.log(msg); 
    } 
} 
+0

Protokollierung schreibt Ausgabe in eine Blackbox. Dies macht das gleiche in der Tat. Wie ist das interessant anders? –

+0

@IraBaxter Ich gab dem caviat, dass ich keine Möglichkeit gesehen habe, die Aufzeichnung von Informationen über den Codefluss zu vermeiden, wenn dieser Code tatsächlich passiert. Meine Antwort befreit nur die Notwendigkeit, einen tatsächlichen Logger während einer Klasse zu verwenden. Ich kann diese Antwort entfernen, wenn sie dich moralisch beleidigt. –

+0

Es beleidigt mich nicht. Ich möchte nur, dass die Leser klar darüber sind, was sie sagt. Mit diesen Kommentaren geht es mir gut. –

Verwandte Themen