Index: lutinutil/src/java/org/codelutin/log/package.html diff -u /dev/null lutinutil/src/java/org/codelutin/log/package.html:1.1 --- /dev/null Wed Sep 13 13:27:10 2006 +++ lutinutil/src/java/org/codelutin/log/package.html Wed Sep 13 13:27:05 2006 @@ -0,0 +1,107 @@ + + + +Ce package permet de mettre en place facilement des logs dans les applications. +Il se base sur commons-logging de cette façon toutes les applications existantes +utilisant commons-logging sont compatible avec LutinLog. +

+LutinLog ajout les fonctionnalités suivantes: +

  • user(String), user(String, Throwable) qui permette de loggé des + informations à destination de l'utilisateur +
  • le suivi des taches: start, min, max, value, end, cancel +
  • leve des events sur toutes les methodes: info, warn, error, start, end, ... + que les listeners peuvent recevoir +
  • des classes permettant d'afficher facilement ces log dans une interface + graphique. + +

    To do

    + +
  • beautiful ProgressMonitorFrame :) +
  • Il faut mettre en place les MetaLutinLog qui est l'encapsulation de + plusieurs LutinLog +
  • Ajouter des methodes sur LutinLogFactory pour récupérer des MetaLutinLog +(meta de tous les LutinLog existant, meta des LutinLog d'un Thread) +
  • Il faut améliorer le ProgressMonitor pour qu'il puisse afficher si +l'utilisateur le souhaite les détails d'un MetaLutinLog, c-a-d qu'on affiche +toutes les taches en cours (message + progress + cancel?) + +

    Utilisation

    + +il faut lancer java avec + +
     java -Dorg.apache.commons.logging.LogFactory=org.codelutin.log.LutinLogFactory 
    + +ensuite soit vous n'avez pas besoin des nouvelles fonctionnalités et vous pouvez +utiliser commons-logging comme habituellement. + +
    +import org.apache.commons.logging.Log;
    +import org.apache.commons.logging.LogFactory;
    +
    +class Toto {
    +
    +     /** to use log facility, just put in your code: log.info(\"...\"); */
    +    static private Log log = LogFactory.getLog(Toto.class);
    + 
    +    public void Titi() {
    +        if (log.isTraceEnabled()) {
    +            log.trace("Titi called");
    +        }
    +    }
    +
    + +Ou si vous souhaitez utiliser les nouvelles fonction + +
    +import org.codelutin.log.LutinLog;
    +import org.codelutin.log.LutinLogFactory;
    +
    +class Toto {
    +
    +     /** to use log facility, just put in your code: log.info(\"...\"); */
    +    static private LutinLog log = LutinLogFactory.getLutinLog(Toto.class);
    + 
    +    public void Titi() {
    +        if (log.isTraceEnabled()) {
    +            log.trace("Titi called");
    +        }
    +        // ... do something
    +        log.setActivateProgressMonitorTime(1000);
    +        log.user("task started");
    +        log.setMin(0);
    +        log.setMax(100);
    +        log.start();
    +        // ...
    +        for (int i=0; i<100; i++) {
    +            if (log.isAskStopTask()) {
    +                break;
    +            }
    +            log.setValue(i);
    +            //...
    +        }
    +        //...
    +        log.end();
    +        log.user("task finished");
    +    }
    +
    + +Dans cette exemple si la tâche dur plus de 1s (1000 millisecondes) alors la +fenêtre de suivi de la tâche est montrer. Sur cette fenêtre l'utilisateur peut +demander l'arret de tâche, on vérifie dont au début de chaque boucle que +l'utiilisateur n'a pas demandé l'arret de la tâche. +

    +Il est bien sur possible d'utiliser ces propres composant pour afficher +l'avancement d'une tâche, Il est bien sur possible de faire soit même les +listener qui sont à l'écoute du LutinLog, mais il est souvent plus simple +d'utiliser MonitorMapper. Il suffit de lui passer en argument les composants +à mettre a jour. +

    +Il faut bien faire attention de garder une variable accessible de MonitorMapper +car sinon il ne se passera rien, cela est du au fait que les listeners de +LutinLog sont tous encapsulé dans des WeakReference, pour éviter les fuites +mémoire en ajoutant tout le temps de listener sans jamais les supprimer. Ici +la suppression est automatique. + + + + \ No newline at end of file