Add system log fallback when native logging is unavailable.
BUG=
Review URL: https://codereview.webrtc.org/1354803002
Cr-Commit-Position: refs/heads/master@{#9989}
diff --git a/webrtc/base/java/src/org/webrtc/Logging.java b/webrtc/base/java/src/org/webrtc/Logging.java
index d5c1690..107e55f 100644
--- a/webrtc/base/java/src/org/webrtc/Logging.java
+++ b/webrtc/base/java/src/org/webrtc/Logging.java
@@ -13,13 +13,26 @@
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 @@
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);
}
}