import java.io.IOException; import java.sql.Time; import java.text.Format; import java.text.SimpleDateFormat; import java.util.Date; import java.util.logging.FileHandler; import java.util.logging.Formatter; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; public class JournalisationHTML { public static void main(String args[]) { // De manière générale on peut dire qu’il y a un Logger par domaine // fonctionnel. // souvent associé à la notion de package et portant le nom de ce // package. Logger logger = Logger.getLogger("Journalisation"); // Ajouter un traiteur pour afficher le message dans une fenetre. try { FileHandler file=new FileHandler("Log.html"); file.setFormatter(new HTMLFormat()); logger.addHandler(file); } catch (SecurityException e) { } catch (IOException e) { } // Trace dans du code courant logger.log(Level.INFO, "!"); try { int i = 15 / 0; System.out.println("Result: " + i); } catch (ArithmeticException exc) { // Trace dans d'une exception // ne remplace pas necessairement toutes les actions a prendre logger.log(Level.SEVERE, exc.getMessage()); } // methode dérivée commodes d’acces logger.warning("ressource manquante..."); } } class HTMLFormat extends Formatter { // Méthode qui reçoit événement puis le format en chaine de // caractères. public String format(LogRecord rec) { StringBuffer buf = new StringBuffer(1000); //Categorie de l'événement buf.append(""+rec.getLevel()+""); //Date et heure de l'événement Format formatter = new SimpleDateFormat("dd/MM/yy"); String s = formatter.format(new Date(rec.getMillis())); buf.append(""+s+" "+new Time(rec.getMillis())+""); //Nom de la classe de l'événement buf.append(""+rec.getSourceClassName()+""); //Messgae de l'événement buf.append(""+rec.getMessage()+""); return buf.toString(); } // Méthode invoque une fois que le gestionnaire de ce format est crée public String getHead(Handler h) { return "Journal"; } // Méthode invoque une fois que le gestionnaire de ce format est fermé public String getTail(Handler h) { return "
NiveauDate et Heure SourceMessage
"; } }