http://bugzilla.slf4j.org/show_bug.cgi?id=173


Wendell <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]
                   |                            |t




--- Comment #10 from Wendell <[email protected]>  2010-05-19 
21:38:22 ---
I ran into the same thing and created a fix that uses the more useful part of a
full class name if possible:

public class AndroidLoggerFactory implements ILoggerFactory
{
   private static final int MAX_TAG_LENGTH = 23;

   private final Map<String, AndroidLogger> loggerMap;

   public AndroidLoggerFactory()
   {
       loggerMap = new HashMap<String, AndroidLogger>();
   }

   /* @see org.slf4j.ILoggerFactory#getLogger(java.lang.String) */
   public AndroidLogger getLogger(String name)
   {
       name = forceValidTag(name);

       AndroidLogger slogger = null;
       // protect against concurrent access of the loggerMap
       synchronized (this)
       {
           slogger = loggerMap.get(name);
           if (slogger == null)
           {
               slogger = new AndroidLogger(name);
               loggerMap.put(name, slogger);
           }
       }
       return slogger;
   }

   protected String forceValidTag(String tag)
   {
       if (tag.length() > MAX_TAG_LENGTH) {
           // try to do something expected

           // if there's a '.' in the tag, it probably came from a fully
qualified class name
           // use the trailing end

           // extra character because we're going to remove the '.'
           String lastPart = tag.substring(tag.length() - MAX_TAG_LENGTH - 1);

           int dot = lastPart.indexOf('.');
           if (dot >= 0 && dot != lastPart.length() - 1) {
               // return as much of the dotted path as will fit
               return lastPart.substring(dot + 1);
           }
           else {
               // no useful dot location, just take the beginning
               return tag.substring(0, MAX_TAG_LENGTH);
           }
       }
       else {
           return tag;
       }
   }
}


-- 
Configure bugmail: http://bugzilla.slf4j.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
slf4j-dev mailing list
[email protected]
http://qos.ch/mailman/listinfo/slf4j-dev

Reply via email to