Logger.getLogger() jedes mal, wenn ich es brauche, oder erstellen Sie einmal pro Klasse
Ich bin mit Java-util-Logger. Gemäß der Dokumentation für Logger.getLogger Methode, sagt Sie, "Finden oder erstellen Sie einen logger für eine namens-subsystem. Wenn ein logger ist bereits angelegt mit dem angegebenen Namen zurückgegeben. Andernfalls wird ein neuer logger erstellt.". Würde es immer noch keinen Vorteil, wenn es nur einmal pro Klasse?
Option 1:
public class Myclass
static Logger logger = Logger.getLogger(Myclass.class);
public void method1() {
logger.log(...);
}
public void method2() {
logger.log(....);
}
}
Option 2:
public class Myclass {
public void method1() {
Logger.getLogger(Myclass.class).log(...);
}
public void method2() {
Logger.getLogger(Myclass.class).log(...);
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es zwei nicht sehr wichtige Gründe, warum mit einem einzigen statische (wahrscheinlich Letzte) Instanz besser ist als der Aufruf
getLogger
alle Zeit.Logger.getLogger
alle Zeit. Es ist nicht etwas zu befürchten, es sei denn, Sie nennen es, die millionenfach in einer engen Schleife, aber es ist da.Gesagt, persönliche Präferenz ist wesentlich wichtiger als diese beiden Gründe. Option 1 ist ein üblicher Ansatz, aber wenn Sie lieber die option 2, dann mit allen Mitteln nutzen es. Es wird nicht Schaden Ihrem code.
static
- in den meisten Fällen ist es in Ordnung, aber wenn Sie schreiben code für die Bibliothek, dann könnten Sie in Erwägung ziehen, es nichtstatic
. Sie erhalten eine pro-Instanziierung Kosten für die Herstellung der AufrufLogger.getLogger
aber das ist zu vernachlässigen.Sie einzige Vorteil den ich sehe, ist, dass kürzere log-Zeilen code sehen klarer. Aber - in der Praxis gibt es keinen Unterschied bei der Laufzeit