Revert "Reland "Injectable logging""
This reverts commit 21219a0e43446701810236fb9fdd59be072c12df. Reason for revert: No tags are written when routing logs to a file - b/86953692 Original change's description: > Reland "Injectable logging" > > Any injected loggable or NativeLogger would be deleted if PCFactory > was reinitialized without calling setInjectableLogger. Now native > logging is not implemented as a Loggable, so it will remain active > unless a Loggable is injected. > > This is a reland of 59216ec4a4151b1ba5478c8f2b5c9f01f4683d7f > > Original change's description: > > Injectable logging > > > > Allows passing a Loggable to PCFactory.initializationOptions, which > > is then injected to Logging.java and logging.h. Future log messages > > in both Java and native will then be passed to this Loggable. > > > > Bug: webrtc:9225 > > Change-Id: I2ff693380639448301a78a93dc11d3a0106f0967 > > Reviewed-on: https://webrtc-review.googlesource.com/73243 > > Commit-Queue: Paulina Hensman <phensman@webrtc.org> > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#23241} > > Bug: webrtc:9225 > Change-Id: I2fe3fbc8c323814284bb62e43fe1870bdab581ee > TBR: kwiberg > Reviewed-on: https://webrtc-review.googlesource.com/77140 > Commit-Queue: Paulina Hensman <phensman@webrtc.org> > Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#23310} TBR=magjed@webrtc.org,sakal@webrtc.org,kwiberg@webrtc.org,phensman@webrtc.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: webrtc:9225 Change-Id: I4d0a5990b5f742cc1a96afde3ca97fad9143d2d4 Reviewed-on: https://webrtc-review.googlesource.com/80641 Reviewed-by: Alex Glaznev <glaznev@webrtc.org> Commit-Queue: Alex Glaznev <glaznev@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23498}
This commit is contained in:
@ -15,35 +15,21 @@ import java.io.StringWriter;
|
||||
import java.util.EnumSet;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import javax.annotation.Nullable;
|
||||
import org.webrtc.Loggable;
|
||||
|
||||
/**
|
||||
* Java wrapper for WebRTC logging. Logging defaults to java.util.logging.Logger, but a custom
|
||||
* logger implementing the Loggable interface can be injected along with a Severity. All subsequent
|
||||
* log messages will then be redirected to the injected Loggable, except those with a severity lower
|
||||
* than the specified severity, which will be discarded.
|
||||
*
|
||||
* It is also possible to switch to native logging (rtc::LogMessage) if one of the following static
|
||||
* functions are called from the app:
|
||||
* Java wrapper for WebRTC logging. Logging defaults to java.util.logging.Logger, but will switch to
|
||||
* native logging (rtc::LogMessage) if one of the following static functions are called from the
|
||||
* app:
|
||||
* - Logging.enableLogThreads
|
||||
* - Logging.enableLogTimeStamps
|
||||
* - Logging.enableLogToDebugOutput
|
||||
*
|
||||
* The priority goes:
|
||||
* 1. Injected loggable
|
||||
* 2. Native logging
|
||||
* 3. Fallback logging.
|
||||
* Only one method will be used at a time.
|
||||
*
|
||||
* Injecting a Loggable or using any of the enable... methods requires that the native library is
|
||||
* loaded, using PeerConnectionFactory.initialize.
|
||||
* Using these APIs requires that the native library is loaded, using
|
||||
* PeerConnectionFactory.initialize.
|
||||
*/
|
||||
public class Logging {
|
||||
private static final Logger fallbackLogger = createFallbackLogger();
|
||||
private static volatile boolean loggingEnabled;
|
||||
@Nullable private static Loggable loggable;
|
||||
private static Severity loggableSeverity;
|
||||
|
||||
private static Logger createFallbackLogger() {
|
||||
final Logger fallbackLogger = Logger.getLogger("org.webrtc.Logging");
|
||||
@ -51,17 +37,6 @@ public class Logging {
|
||||
return fallbackLogger;
|
||||
}
|
||||
|
||||
static void injectLoggable(Loggable injectedLoggable, Severity severity) {
|
||||
if (injectedLoggable != null) {
|
||||
loggable = injectedLoggable;
|
||||
loggableSeverity = severity;
|
||||
}
|
||||
}
|
||||
|
||||
static void deleteInjectedLoggable() {
|
||||
loggable = null;
|
||||
}
|
||||
|
||||
// TODO(solenberg): Remove once dependent projects updated.
|
||||
@Deprecated
|
||||
public enum TraceLevel {
|
||||
@ -108,26 +83,11 @@ public class Logging {
|
||||
// TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression.
|
||||
@SuppressWarnings("NoSynchronizedMethodCheck")
|
||||
public static synchronized void enableLogToDebugOutput(Severity severity) {
|
||||
if (loggable != null) {
|
||||
throw new IllegalStateException(
|
||||
"Logging to native debug output not supported while Loggable is injected. "
|
||||
+ "Delete the Loggable before calling this method.");
|
||||
}
|
||||
nativeEnableLogToDebugOutput(severity.ordinal());
|
||||
loggingEnabled = true;
|
||||
}
|
||||
|
||||
public static void log(Severity severity, String tag, String message) {
|
||||
if (loggable != null) {
|
||||
// Filter log messages below loggableSeverity.
|
||||
if (severity.ordinal() < loggableSeverity.ordinal()) {
|
||||
return;
|
||||
}
|
||||
loggable.onLogMessage(message, severity, tag);
|
||||
return;
|
||||
}
|
||||
|
||||
// Try native logging if no loggable is injected.
|
||||
if (loggingEnabled) {
|
||||
nativeLog(severity.ordinal(), tag, message);
|
||||
return;
|
||||
|
Reference in New Issue
Block a user