Java Logging API - évaluation de la qualité de mon code
Bonjour,
Je m'interroge sur les bonnes pratiques de l'utilisation du de Java Logging API.
Durant le cours, j' ai retenu que :
- Il faut bannir system.out.println() pour le remplacer par un log de type Level.INFO
- logger dans un fichier externe. L'ingénieur système peut avoir besoin de ces logs.
Durant le premier test, j'avais une solution du style :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
public class Application {
public static void main(String[] args) {
Logger logger = null;
try {
//Configuration du logger
FileHandler out = new FileHandler("C:\\Temp\\Log\\log1.xml");
logger = Logger.getLogger(src.uni.presentation.Application.class.getName());
logger.setLevel(Level.INFO);
logger.addHandler(out);
//utilisation du logger
logger.log(Level.INFO, "Hello world");
} catch (IOException ex) {
logger.log(Level.SEVERE, null, ex);
}
}
} |
Le code fonctionne, mais j'ai reçu une insuffisance. Il paraît qu'il faudrait faire entre 2 et 3 classes en réalité. J'ai donc retravaillé et produit le code ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
public class Logging {
private final String fichier = "C:\\Temp\\Log\\log.xml";
public Logging(){}
public Logger getLogging(Class classe) throws IOException {
FileHandler out = new FileHandler(fichier);
Logger logger = Logger.getLogger(classe.getName());
logger.setLevel(Level.INFO);
logger.addHandler(out);
return logger;
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
public class Application {
public static void main(String[] args) {
Logger logger = null;
try {
Logging log = new Logging();
logger = log.getLogging(src.hearc.app.Application.class);
logger.log(Level.INFO, "Hello World - info");
logger.log(Level.SEVERE, "Hello World - Severe");
//Ne sera pas afficher car SETLevel(Level.INFO)
logger.log(Level.FINE, "Hello World - Fine");
} catch (IOException ex) {
logger.log(Level.SEVERE, null, ex);
}
}
} |
Pour ceux qui ont de l'expérience, qu'en pensez-vous. Comment puis-je améliorer mon code ? Merci