
http://bugzilla.slf4j.org/show_bug.cgi?id=173 Wendell <wendell_temp_1234@comcast.net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |wendell_temp_1234@comcast.ne | |t --- Comment #10 from Wendell <wendell_temp_1234@comcast.net> 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.