Bonjour à tous,
je travaille sur des projets online (applis web ...).
Dans ce genre de projet l'utilisation du debugger d'Eclipse ou tout autre RAD n'est pas envisageable. Notament en raison des parties du projet qui sont externalisées chez des prestataires ...
Le seul moyen de débugger est donc de tracer un maximum ...
J'ai donc voulu créer une classe à cet effet.
Voilà comment elle se présente :
L'avantage de ce code est d'obtenir automatiquement la provenance du message (package, classe).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class Print { public void printLog(Object o, String msg) { if (o == null) { System.err.println("ERREUR : Object o == null"); } else if (msg == null) { System.err.println("ERREUR : String msg == null"); } else { System.out.println(o.getClass().getPackage().getName()+"|"+o.getClass().getName()+"|"+msg); } } }
Tout ça en tapant un minimum de texte : printLog(this, "mon message");
Description des problèmes rencontrés :
- La déclaration de cette classe nécessite une instanciation avant l'utilisation ... j'aurais préféré déclarer la méthode printLog en static pour pouvoir l'utiliser de la manière suivante :
Seulement dans ce cas l'utilisation d'Object n'est pas possible puisqu'il s'agit d'une instance de classe utilisée dans un contexte statique ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Print.printLog(this, "monMessage");- Si la classe et la méthode ne sont pas déclarées en static, tout fonctionne correctement ... sauf si on essaie de l'appeler à partir d'une méthode statique de classe ...
Y-a-t-il une solution à mon problème ???
Merci d'avance pour votre aide.
Partager