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}
diff --git a/webrtc/base/java/src/org/webrtc/Logging.java b/webrtc/base/java/src/org/webrtc/Logging.java
index 751a5c4..aea4ffb 100644
--- a/webrtc/base/java/src/org/webrtc/Logging.java
+++ b/webrtc/base/java/src/org/webrtc/Logging.java
@@ -19,6 +19,7 @@
 /** 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 @@
 
   // 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<TraceLevel> 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) {