Aller au contenu

[Logcat] classe Logger - "Log4j" like


Caballero

Recommended Posts

Pour ceux qui ont l'habitude d'utiliser l'API log4j, lors de développements d'applications Java, j'ai fait cette petite classe qui ressemble à celle du Logger de log4j.

import android.util.Log;

public class Logger {

   public static final Logger getLogger(Class<?> c){
       return new Logger(c);
   }

   public static final Logger getLogger(String tag){
       return new Logger(tag);
   }

   private String tag;

   private Logger(Class<?> c){
       if(c == null){
           c = Thread.currentThread().getClass();
       }
       this.tag = c.getName();
   }

   private Logger(String tag){
       if(tag == null || "".equals(tag)){
           tag = Thread.currentThread().getClass().getName();
       }
       this.tag = tag;
   }

   public boolean isTraceEnabled(){
       return Log.isLoggable(tag, Log.VERBOSE);
   }

   public boolean isDebugEnabled(){
       return Log.isLoggable(tag, Log.DEBUG);
   }

   public boolean isInfoEnabled(){
       return Log.isLoggable(tag, Log.INFO);
   }

   public boolean isWarnEnabled(){
       return Log.isLoggable(tag, Log.WARN);
   }

   public boolean isErrorEnabled(){
       return Log.isLoggable(tag, Log.ERROR);
   }

   public void trace(String msg){
       Log.v(tag, msg);
   }

   public void trace(String msg, Throwable t){
       Log.v(tag, msg, t);
   }

   public void debug(String msg){
       Log.d(tag, msg);
   }

   public void debug(String msg, Throwable t){
       Log.d(tag, msg, t);
   }

   public void info(String msg){
       Log.i(tag, msg);
   }

   public void info(String msg, Throwable t){
       Log.i(tag, msg, t);
   }

   public void warn(String msg){
       Log.w(tag, msg);
   }

   public void warn(String msg, Throwable t){
       Log.w(tag, msg, t);
   }

   public void error(String msg){
       Log.e(tag, msg);
   }

   public void error(String msg, Throwable t){
       Log.e(tag, msg, t);
   }

}

Comment l'utiliser ?

Déclarer au besoin dans chacun de vos classes : private static final Logger logger = Logger.getLogger(MaClass.class);

et après, dans le code, logger.debug("bla bla bla");, logger.error("Exception catchée", e); etc ...

Bien évidemment, pour ceux qui ne connaissent pas log4j, vous allez trouver ça inutile.

Voila :)

Lien vers le commentaire
Partager sur d’autres sites

  • 5 weeks later...

Bonjour,

Merci pour la classe que tu propose.

Je suis actuellement sur un projet dans lequel je dois faire la migration d'une API de java standart à android.

l'API utilise actuellement sous J2SE Log4j comme système de journalisation et de débuggage. j'aurais donc aimé savoir s'il est possible d'utiliser ta classe exactement comme log4j, c'est à dire utiliser des appenders et les layouts dans un fichier de config sous androi.

Dans un cadre plus large , est-il possible d'esternaliser les log d'android hors du logcat ( dans un fichier par exemple)?

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...