import java.io.IOException; import java.util.logging.FileHandler; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTextArea; public class JournalisationIHMHandler { 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. logger.addHandler(new IHMHandler()); // methode dérivée commodes d’acces logger.warning("ressource manquante..."); } } class IHMHandler extends Handler { private static class IHMDialog extends JDialog { private JLabel label = new JLabel() ; IHMDialog() { // internationaliser setTitle("Attention! message!"); setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE); //getContentPane().add(new JScrollPane(jtxt)); getContentPane().add(label); } public synchronized void report(String rapport) { label.setText(rapport) ; setSize(250,100); setVisible(true); } } static IHMDialog ihm = new IHMDialog(); public void publish(LogRecord record) { ihm.report(record.getMessage()); } public void flush() { } public void close() throws SecurityException { } }