The various pieces of WebRTC do a lot of logging, and these logs can be very helpful to developers when trying to track down problems. This page provides instructions for turning these logging messages on so you can include them in bug reports, etc..
Note about NSPR and MOZ_LOG
NSPR (NSPR_LOG_MODULES) has been deprecated in favor of MOZ_LOG. NSPR_LOG_MODULES does not work with the libwebrtc logging, so just use MOZ_LOG.
In Firefox 54 and later, you can use about:networking, and select the Logging option, to change MOZ_LOG/MOZ_LOG_FILE options on the fly -- without restarting the browser. Also, you can use about:config and set any log option by adding a "logging.xxxxx" variable (right-click -> New), and set it to an integer value of 0-5.
Set the following environment variables:
- R_LOG_LEVEL=3 (can be anything between 1 and 9) (See <https://searchfox.org/mozilla-central/source/dom/media/webrtc/transport/third_party/nrappkit/src/port/win32/include/csi_platform.h> for levels)
- R_LOG_VERBOSE=1 (if you want to include the module name generating the message)
Signaling (SDP offer/answer handling)
- MOZ_LOG_FILE=/path/to/moz.log (if you don't want the default stderr, but be aware that this may not work due to sandboxing)
You can also add ",timestamp" to that list if you want each log message to include timestamps. Other options are available as well, and they are detailed under "Description" on the MOZ LOG MODULES MDN page.
getUserMedia and others
To log getUserMedia stuff, use MOZ_LOG=MediaManager:4,GetUserMedia:4. For frame-by-frame logging, use MediaManager:5 Camera-specific logging modules: CamerasParent and CamerasChild DOMMediaStreams: MediaStream MediaStreamGraph: MediaStreamGraph GMP (OpenH264): GMP MediaRecorder: MediaRecorder, MediaEncoder, TrackEncoder, VP8TrackEncoder
Media (the GIPS stack: RTP/RTCP)
This also uses the Mozilla logging infrastructure.