diff options
| author | Android (Google) Code Review <android-gerrit@google.com> | 2009-10-23 21:24:10 -0400 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-10-23 21:24:10 -0400 |
| commit | 9e6784f053e1d2cedc69f20112edee667be5c2e2 (patch) | |
| tree | c9e339ee39a610e6b9bcdeca26ebae07c6f4a2df /core | |
| parent | 31f4c2d653324bd8cbe7470e2f8bdb36c2196194 (diff) | |
| parent | 3183c78f19e794c10ecc3fa2b437a70335401542 (diff) | |
| download | frameworks_base-9e6784f053e1d2cedc69f20112edee667be5c2e2.zip frameworks_base-9e6784f053e1d2cedc69f20112edee667be5c2e2.tar.gz frameworks_base-9e6784f053e1d2cedc69f20112edee667be5c2e2.tar.bz2 | |
Merge change I3183c78f
* changes:
Plug into the new optimized path for Dalvik logging.
Diffstat (limited to 'core')
| -rw-r--r-- | core/java/com/android/internal/logging/AndroidHandler.java | 65 |
1 files changed, 31 insertions, 34 deletions
diff --git a/core/java/com/android/internal/logging/AndroidHandler.java b/core/java/com/android/internal/logging/AndroidHandler.java index c4a1479..12f6a4f 100644 --- a/core/java/com/android/internal/logging/AndroidHandler.java +++ b/core/java/com/android/internal/logging/AndroidHandler.java @@ -17,12 +17,16 @@ package com.android.internal.logging; import android.util.Log; +import dalvik.system.DalvikLogging; +import dalvik.system.DalvikLogHandler; -import java.util.logging.*; -import java.util.Date; -import java.text.MessageFormat; import java.io.PrintWriter; import java.io.StringWriter; +import java.util.logging.Formatter; +import java.util.logging.Handler; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; /** * Implements a {@link java.util.logging.Logger} handler that writes to the Android log. The @@ -77,7 +81,7 @@ import java.io.StringWriter; * </tr> * </table> */ -public class AndroidHandler extends Handler { +public class AndroidHandler extends Handler implements DalvikLogHandler { /** * Holds the formatter for all Android log handlers. */ @@ -118,33 +122,13 @@ public class AndroidHandler extends Handler { @Override public void publish(LogRecord record) { - try { - int level = getAndroidLevel(record.getLevel()); - String tag = record.getLoggerName(); - - if (tag == null) { - // Anonymous logger. - tag = "null"; - } else { - // Tags must be <= 23 characters. - int length = tag.length(); - if (length > 23) { - // Most loggers use the full class name. Try dropping the - // package. - int lastPeriod = tag.lastIndexOf("."); - if (length - lastPeriod - 1 <= 23) { - tag = tag.substring(lastPeriod + 1); - } else { - // Use last 23 chars. - tag = tag.substring(tag.length() - 23); - } - } - } - - if (!Log.isLoggable(tag, level)) { - return; - } + int level = getAndroidLevel(record.getLevel()); + String tag = DalvikLogging.loggerNameToTag(record.getLoggerName()); + if (!Log.isLoggable(tag, level)) { + return; + } + try { String message = getFormatter().format(record); Log.println(level, tag, message); } catch (RuntimeException e) { @@ -152,12 +136,26 @@ public class AndroidHandler extends Handler { } } + public void publish(Logger source, String tag, Level level, String message) { + // TODO: avoid ducking into native 2x; we aren't saving any formatter calls + int priority = getAndroidLevel(level); + if (!Log.isLoggable(tag, priority)) { + return; + } + + try { + Log.println(priority, tag, message); + } catch (RuntimeException e) { + Log.e("AndroidHandler", "Error logging message.", e); + } + } + /** * Converts a {@link java.util.logging.Logger} logging level into an Android one. - * + * * @param level The {@link java.util.logging.Logger} logging level. - * - * @return The resulting Android logging level. + * + * @return The resulting Android logging level. */ static int getAndroidLevel(Level level) { int value = level.intValue(); @@ -171,5 +169,4 @@ public class AndroidHandler extends Handler { return Log.DEBUG; } } - } |
