MonFiltre.java

import java.util.logging.*;
public class MonFiltre implements Filter {
  // Noms symboliques associés aux niveaux des divers clients
  public static Level NIVEAU_ELECTRICIEN   = Level.SEVERE;
  public static Level NIVEAU_ADMIN_RESEAU  = Level.WARNING;
  public static Level NIVEAU_ADMIN_SYSTEME = Level.INFO;
  public static Level NIVEAU_INGE_RESEAU   = Level.WARNING;
  public static Level NIVEAU_EXPERT        = Level.CONFIG;
  // Instances utilisées pour le filtrage
  public static MonFiltre ELECTRICIEN = new MonFiltre();
  public static MonFiltre ADMIN_RESEAU = new MonFiltre();
  public static MonFiltre ADMIN_SYSTEME = new MonFiltre();
  /** Constructeur protégé pour interdire la construction
      publique d'objets. */
  protected MonFiltre(){}
  /** Méthode appelée pour déterminer si l'événement
      reçu sous forme d'un objet LogRecord doit être
      sélectionné ou non. */
  public boolean isLoggable(LogRecord record) {
    // Récupération du paramètre associé à l'événement
    Object[] tab = record.getParameters();
    if (tab==null)
      return false;
    // L'événement est sélectionné si un de ses paramètres contient
    // le filtre courant.
    for (int i=0; i<tab.length; ++i)
      // L'événement est conservé uniquement s'il contient
      // en argument le filtre courant
      if (tab[i]==this)
    return true;
    return false;
  }
}