From ca14b2f065c95caa965c3041d11200aa7a34b29a Mon Sep 17 00:00:00 2001 From: jiayl Date: Fri, 18 Sep 2015 04:32:28 -0700 Subject: [PATCH] Add system log fallback when native logging is unavailable. BUG= Review URL: https://codereview.webrtc.org/1354803002 Cr-Commit-Position: refs/heads/master@{#9989} --- webrtc/base/java/src/org/webrtc/Logging.java | 29 ++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/webrtc/base/java/src/org/webrtc/Logging.java b/webrtc/base/java/src/org/webrtc/Logging.java index d5c1690cbc..107e55fe55 100644 --- a/webrtc/base/java/src/org/webrtc/Logging.java +++ b/webrtc/base/java/src/org/webrtc/Logging.java @@ -13,13 +13,26 @@ package org.webrtc; import java.io.PrintWriter; import java.io.StringWriter; import java.util.EnumSet; +import java.util.logging.ConsoleHandler; +import java.util.logging.SimpleFormatter; +import java.util.logging.Handler; +import java.util.logging.Logger; +import java.util.logging.Level; /** Java wrapper for WebRTC logging. */ public class Logging { + private static final Logger fallbackLogger = Logger.getLogger("org.webrtc.Logging"); + static { try { System.loadLibrary("jingle_peerconnection_so"); } catch (Throwable t) { + // If native logging is unavailable, log to system log. + ConsoleHandler consolehandler = new ConsoleHandler(); + consolehandler.setFormatter(new SimpleFormatter()); + consolehandler.setLevel(Level.ALL); + fallbackLogger.addHandler(consolehandler); + fallbackLogger.setLevel(Level.FINE); } } @@ -75,6 +88,22 @@ public class Logging { 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; + } + fallbackLogger.log(level, tag + ": " + message); } }