LutinLog ajout les fonctionnalit�s suivantes:
java -Dorg.apache.commons.logging.LogFactory=org.nuiton.log.LutinLogFactoryensuite 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.nuiton.log.LutinLog;
import org.nuiton.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.