Jump to content

[Logcat] classe Logger - "Log4j" like


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

Link to comment
Share on other 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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...