Aller au contenu

Recommended Posts

Posté(e)

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 :)

  • 5 weeks later...
Posté(e)

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

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...