J'utilise un énum singleton, mais la mise en œuvre de la journalisation est gênante. Ceci:
Foo.java: illegal reference to static field from initializer
3 Réponses :
En réponse à votre question, faites simplement l'enregistreur statique ... p>
BTW, je pense que sa pratique standard d'utiliser un enregistreur statique, même pour des instances d'objet. En d'autres termes, l'enregistreur est sur la classe; Tous les objets utilisent les références de l'enregistreur statique. P>
voir p>
+1 pour l'enregistreur statique. SLF4J a une discussion intéressante aussi: SLF4J.org/faq.html#declared_static
LOG DYNAMIQUEMENT:
Logger.getLogger(Foo.class.getName()).info("log info");
Ce n'est vraiment pas si vous utilisez un IDE. Définissez-vous un modèle. Dans Eclipse, j'utilise "Journal" pour développer ce modèle à une entrée de journal de débogage rapide.
Quel est l'avantage de cette méthode?
Les instances sont acceptées par le CIO et peuvent être utilisées pour définir un environnement de journalisation différent pour chaque application sur un serveur. Légèrement plus lent, mais il existe certains avantages (et d'autres inconvénients également).
Un peu plus courte: Utilisez une méthode: Logger (). Débogage (...) i> private static Logger logger()
{
if(logger == null)
{
logger = Logger.getLogger(AnEnum.class);
}
return logger;
}
/** Logger **/
private static Logger logger;