From 4d47aa335c6d3cd99df4627ae3445ac08cea0a29 Mon Sep 17 00:00:00 2001 From: Jiayang Liu Date: Fri, 25 Sep 2015 10:04:30 -0700 Subject: [PATCH] Fallback to system log when webrtc tracing not enabled. BUG= R=glaznev@webrtc.org Review URL: https://codereview.webrtc.org/1368053002 . Cr-Commit-Position: refs/heads/master@{#10079} --- webrtc/base/java/src/org/webrtc/Logging.java | 49 ++++++++++++-------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/webrtc/base/java/src/org/webrtc/Logging.java b/webrtc/base/java/src/org/webrtc/Logging.java index 751a5c4f9c..aea4ffb23e 100644 --- a/webrtc/base/java/src/org/webrtc/Logging.java +++ b/webrtc/base/java/src/org/webrtc/Logging.java @@ -19,6 +19,7 @@ import java.util.logging.Level; /** Java wrapper for WebRTC logging. */ public class Logging { private static final Logger fallbackLogger = Logger.getLogger("org.webrtc.Logging"); + private static boolean tracingEnabled; static { try { @@ -68,36 +69,46 @@ public class Logging { // Enable tracing to |path| of messages of |levels| and |severity|. // On Android, use "logcat:" for |path| to send output there. - public static void enableTracing( + public static synchronized void enableTracing( String path, EnumSet levels, Severity severity) { + if (tracingEnabled) { + return; + } int nativeLevel = 0; for (TraceLevel level : levels) { nativeLevel |= level.level; } nativeEnableTracing(path, nativeLevel, severity.ordinal()); + tracingEnabled = true; } public static void log(Severity severity, String tag, String message) { - try { - nativeLog(severity.ordinal(), tag, message); - } catch (Throwable t) { - Level level; - switch (severity) { - case LS_ERROR: - level = Level.SEVERE; - break; - case LS_WARNING: - level = Level.WARNING; - break; - case LS_INFO: - level = Level.INFO; - break; - default: - level = Level.FINE; - break; + if (tracingEnabled) { + try { + nativeLog(severity.ordinal(), tag, message); + return; + } catch (Throwable t) { + // Don't log the error to avoid spamming. } - fallbackLogger.log(level, tag + ": " + message); } + + // Fallback to system log. + Level level; + switch (severity) { + case LS_ERROR: + level = Level.SEVERE; + break; + case LS_WARNING: + level = Level.WARNING; + break; + case LS_INFO: + level = Level.INFO; + break; + default: + level = Level.FINE; + break; + } + fallbackLogger.log(level, tag + ": " + message); } public static void d(String tag, String message) {