Wie implementiere ich die Protokollierung in eine enum singleton?
Ich bin mit einer enum singleton, aber die Umsetzung der Protokollierung ist mühsam. Diese:
public enum Foo {
INSTANCE;
private final Logger log = Logger.getLogger(Foo.class.getName());
...
}
Den logger instanziiert wird, in der Weise, dass ich würde instanziieren, einen logger für eine normale Java-Klasse, aber natürlich bekomme ich die folgende Fehlermeldung:
Foo.java: illegal reference to static field from initializer
Gibt es eine entsprechende Möglichkeit zum log-in enum Singleton?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Antwort auf deine Frage, nur damit der logger statisch...
BTW, ich denke, die gängige Praxis für die Verwendung einer statischen logger auch für die Objekt-Instanzen. In anderen Worten, der logger wird auf die Klasse an; alle Objekte, die statische logger verweist.
Sehen
http://logging.apache.org/log4j/1.2/manual.html
Meisten Beispiele für die Verwendung von logger drin haben, den logger als eine statische Eigenschaft...
Protokoll dynamisch:
Etwas kürzer: eine Methode verwenden: logger().debug(...)