Merge pull request #3450 from antobinary/nginx-logging3

Add an i18n agnostic field for client logging
This commit is contained in:
Richard Alam 2016-11-09 16:03:48 -05:00 committed by GitHub
commit 99a2d239d7
6 changed files with 94 additions and 47 deletions

View File

@ -149,7 +149,6 @@ package org.bigbluebutton.core.managers
LOGGER.info(JSON.stringify(logData));
dispatchReconnectionSucceededEvent(type);
delete _connections[type];
if (type == BIGBLUEBUTTON_CONNECTION) {
reconnect();
@ -161,7 +160,7 @@ package org.bigbluebutton.core.managers
_dispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.SUCCESS_MESSAGE_EVENT,
ResourceUtil.getInstance().getString('bbb.connection.reestablished'),
msg));
msg, 'bbb.connection.reestablished'));
_reconnectTimeout.reset();
removePopUp();

View File

@ -29,12 +29,14 @@ package org.bigbluebutton.main.events
public var title:String;
public var message:String;
public function ClientStatusEvent(type:String, title:String, message:String)
public var logCode:String;
public function ClientStatusEvent(type:String, title:String, message:String, logCode:String)
{
super(type);
this.title = title;
this.message = message;
this.logCode = logCode;
}
}
}
}

View File

@ -11,6 +11,7 @@ terms of the GNU Lesser General Public License as published by the Free Software
Foundation; either version 3.0 of the License, or (at your option) any later
version.
BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
@ -318,7 +319,10 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
// this is a terrible place for these checks because this function runs 4 times on startup
if (BBB.initConnectionManager().isTunnelling) {
isTunneling = true;
globalDispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.WARNING_MESSAGE_EVENT, ResourceUtil.getInstance().getString("bbb.clientstatus.tunneling.title"), ResourceUtil.getInstance().getString("bbb.clientstatus.tunneling.message")));
globalDispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.WARNING_MESSAGE_EVENT,
ResourceUtil.getInstance().getString("bbb.clientstatus.tunneling.title"),
ResourceUtil.getInstance().getString("bbb.clientstatus.tunneling.message"),
'bbb.clientstatus.tunneling'));
}
versionCheck();
@ -340,7 +344,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
if ((browserVersion[0].toString().toLowerCase() == "chrome" && browserVersion[1] < xml.@chrome) || browserVersion[0].toString().toLowerCase() == "firefox" && browserVersion[1] < xml.@firefox) {
globalDispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.WARNING_MESSAGE_EVENT,
ResourceUtil.getInstance().getString("bbb.clientstatus.browser.title"),
ResourceUtil.getInstance().getString("bbb.clientstatus.browser.message", [browserVersion[0]+" "+browserVersion[1]])));
ResourceUtil.getInstance().getString("bbb.clientstatus.browser.message", [browserVersion[0]+" "+browserVersion[1]]),
'bbb.clientstatus.browser.message'));
}
//find flash version
@ -350,7 +355,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
((flashVersion.os != 'LNX' || browserVersion[0].toString().toLowerCase() == "chrome") && flashVersion.major < xml.@flash)) {
globalDispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.WARNING_MESSAGE_EVENT,
ResourceUtil.getInstance().getString("bbb.clientstatus.flash.title"),
ResourceUtil.getInstance().getString("bbb.clientstatus.flash.message", [flashVersion.major+"."+flashVersion.minor+"."+flashVersion.build])));
ResourceUtil.getInstance().getString("bbb.clientstatus.flash.message", [flashVersion.major+"."+flashVersion.minor+"."+flashVersion.build]),
'bbb.clientstatus.flash.message'));
}
}

View File

@ -94,7 +94,13 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
messages.push(obj);
showNotification();
LOGGER.warn("ClientNotification:" + e.title + " " + e.message);
var logData:Object = {};
logData.type = "ClientNotification";
logData.logCode = e.logCode;
logData.message = e.message;
logData.title = e.title;
LOGGER.warn(JSON.stringify(logData));
}
private function showNotification():void {
@ -102,7 +108,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
visible = includeInLayout = true;
if (hideTimer.running) hideTimer.reset();
hideTimer.start()
hideTimer.start();
if (!notification) {
notification = ToolTipManager.createToolTip(ResourceUtil.getInstance().getString("bbb.clientstatus.notification"), 100, 100, "errorTipAbove", this) as ToolTip;

View File

@ -14,7 +14,6 @@ package org.bigbluebutton.modules.phone.managers
import org.as3commons.logging.util.jsonXify;
import org.bigbluebutton.core.UsersUtil;
import org.bigbluebutton.main.api.JSAPI;
import org.bigbluebutton.main.api.JSLog;
import org.bigbluebutton.main.events.ClientStatusEvent;
import org.bigbluebutton.main.model.users.AutoReconnect;
import org.bigbluebutton.modules.phone.PhoneModel;
@ -32,7 +31,7 @@ package org.bigbluebutton.modules.phone.managers
public class WebRTCCallManager
{
private static const LOGGER:ILogger = getClassLogger(WebRTCCallManager);
private static const LOGGER:ILogger = getClassLogger(WebRTCCallManager);
private const MAX_RETRIES:Number = 3;
private var browserType:String = "unknown";
@ -60,7 +59,8 @@ package org.bigbluebutton.modules.phone.managers
if (options.useWebRTCIfAvailable && !isWebRTCSupported()) {
dispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.WARNING_MESSAGE_EVENT,
ResourceUtil.getInstance().getString("bbb.clientstatus.webrtc.title"),
ResourceUtil.getInstance().getString("bbb.clientstatus.webrtc.message")));
ResourceUtil.getInstance().getString("bbb.clientstatus.webrtc.message"),
'bbb.clientstatus.webrtc.title'));
}
usingWebRTC = checkIfToUseWebRTC();
@ -135,7 +135,8 @@ package org.bigbluebutton.modules.phone.managers
if(reconnecting) {
dispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.SUCCESS_MESSAGE_EVENT,
ResourceUtil.getInstance().getString("bbb.webrtcWarning.connection.reestablished"),
ResourceUtil.getInstance().getString("bbb.webrtcWarning.connection.reestablished")));
ResourceUtil.getInstance().getString("bbb.webrtcWarning.connection.reestablished"),
'bbb.webrtcWarning.connection.reestablished'));
reconnecting = false;
}
}
@ -150,8 +151,12 @@ package org.bigbluebutton.modules.phone.managers
}
public function handleJoinVoiceConferenceCommand(event:JoinVoiceConferenceCommand):void {
LOGGER.debug("handleJoinVoiceConferenceCommand - usingWebRTC: " + usingWebRTC + ", event.mic: " + event.mic);
var logData:Object = UsersUtil.initLogData();
logData.usingWebRTC = usingWebRTC;
logData.eventMic = event.mic;
logData.message = "handleJoinVoiceConferenceCommand - usingWebRTC:";
LOGGER.info(JSON.stringify(logData));
if (!usingWebRTC || !event.mic) return;
if (options.skipCheck || echoTestDone) {
@ -200,26 +205,34 @@ package org.bigbluebutton.modules.phone.managers
errorString = ResourceUtil.getInstance().getString("bbb.webrtcWarning.failedError.unknown", [event.errorCode]);
}
var logData:Object = UsersUtil.initLogData();
logData.user.reason = errorString;
var logData:Object = UsersUtil.initLogData();
logData.user.reason = errorString;
logData.tags = ["voice", "webrtc"];
logData.message = "WebRtc Echo test failed.";
LOGGER.info(jsonXify(logData));
sendWebRTCAlert(ResourceUtil.getInstance().getString("bbb.webrtcWarning.title"), ResourceUtil.getInstance().getString("bbb.webrtcWarning.message", [errorString]), errorString);
logData.message = "WebRtc Echo test failed.";
logData.errorEvent = event;
LOGGER.info(jsonXify(logData));
sendWebRTCAlert(ResourceUtil.getInstance().getString("bbb.webrtcWarning.title"),
ResourceUtil.getInstance().getString("bbb.webrtcWarning.message", [errorString]),
errorString,
'bbb.webrtcWarning webRTCEchoTestFailedEvent');
}
public function handleWebRTCEchoTestEndedUnexpectedly():void {
model.state = Constants.INITED;
var errorString:String = ResourceUtil.getInstance().getString("bbb.webrtcWarning.failedError.endedunexpectedly");
var logData:Object = UsersUtil.initLogData();
logData.user.reason = errorString;
var logCode:String = "bbb.webrtcWarning.failedError.endedunexpectedly";
var errorString:String = ResourceUtil.getInstance().getString(logCode);
var logData:Object = UsersUtil.initLogData();
logData.user.reason = errorString;
logData.tags = ["voice", "webrtc"];
logData.message = "WebRtc Echo test ended unexpectedly.";
LOGGER.info(jsonXify(logData));
sendWebRTCAlert(ResourceUtil.getInstance().getString("bbb.webrtcWarning.title"), ResourceUtil.getInstance().getString("bbb.webrtcWarning.message", [errorString]), errorString);
LOGGER.info(jsonXify(logData));
sendWebRTCAlert(ResourceUtil.getInstance().getString("bbb.webrtcWarning.title"),
ResourceUtil.getInstance().getString("bbb.webrtcWarning.message", [errorString]),
errorString,
logCode);
}
public function handleWebRTCCallFailedEvent(event:WebRTCCallEvent):void {
@ -231,7 +244,8 @@ package org.bigbluebutton.modules.phone.managers
reconnecting = true;
dispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.WARNING_MESSAGE_EVENT,
ResourceUtil.getInstance().getString("bbb.webrtcWarning.connection.dropped"),
ResourceUtil.getInstance().getString("bbb.webrtcWarning.connection.reconnecting")));
ResourceUtil.getInstance().getString("bbb.webrtcWarning.connection.reconnecting"),
'bbb.webrtcWarning.connection.dropped,reconnecting'));
reconnect.onDisconnect(joinVoiceConference, []);
}
else {
@ -256,23 +270,30 @@ package org.bigbluebutton.modules.phone.managers
var logData:Object = UsersUtil.initLogData();
logData.tags = ["voice", "webrtc"];
logData.user.reason = errorString;
logData.errorEvent = event;
LOGGER.info(jsonXify(logData));
sendWebRTCAlert(ResourceUtil.getInstance().getString("bbb.webrtcWarning.title"), ResourceUtil.getInstance().getString("bbb.webrtcWarning.message", [errorString]), errorString);
sendWebRTCAlert(ResourceUtil.getInstance().getString("bbb.webrtcWarning.title"),
ResourceUtil.getInstance().getString("bbb.webrtcWarning.message", [errorString]),
errorString,
'bbb.webrtcWarning.failedError');
}
}
}
public function handleWebRTCMediaFailedEvent():void {
model.state = Constants.INITED;
var errorString:String = ResourceUtil.getInstance().getString("bbb.webrtcWarning.failedError.mediamissing");
var logData:Object = UsersUtil.initLogData();
logData.user.reason = errorString;
LOGGER.info(jsonXify(logData));
sendWebRTCAlert(ResourceUtil.getInstance().getString("bbb.webrtcWarning.title"), ResourceUtil.getInstance().getString("bbb.webrtcWarning.message", [errorString]), errorString);
var logCode:String = "bbb.webrtcWarning.failedError.mediamissing";
var errorString:String = ResourceUtil.getInstance().getString(logCode);
var logData:Object = UsersUtil.initLogData();
logData.user.reason = errorString;
LOGGER.info(jsonXify(logData));
sendWebRTCAlert(ResourceUtil.getInstance().getString("bbb.webrtcWarning.title"),
ResourceUtil.getInstance().getString("bbb.webrtcWarning.message", [errorString]),
errorString,
logCode);
}
private var popUpDelayTimer:Timer = new Timer(100, 1);
@ -294,7 +315,7 @@ package org.bigbluebutton.modules.phone.managers
}
}
private function sendWebRTCAlert(title:String, message:String, error:String):void {
private function sendWebRTCAlert(title:String, message:String, error:String, logCode:String):void {
/**
* There is a bug in Flex SDK 4.14 where the screen stays blurry if a
* pop-up is opened from another pop-up. I delayed the second open to
@ -305,9 +326,15 @@ package org.bigbluebutton.modules.phone.managers
Alert.show(message, title, Alert.YES | Alert.NO, null, handleCallFailedUserResponse, null, Alert.YES);
});
popUpDelayTimer.start();
dispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.FAIL_MESSAGE_EVENT, title, error));
dispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.FAIL_MESSAGE_EVENT, title, error, logCode));
LOGGER.warn("WebRTCAlert:" + title + " " + error + " " + message);
var logData:Object = UsersUtil.initLogData();
logData.type = "WebRTCAlert";
logData.title = title;
logData.error = error;
logData.message = message;
logData.logCode = logCode;
LOGGER.warn(JSON.stringify(logData));
}
}
}

View File

@ -38,9 +38,9 @@ package org.bigbluebutton.modules.screenshare.services.red5
import org.bigbluebutton.core.UsersUtil;
import org.bigbluebutton.core.managers.ReconnectionManager;
import org.bigbluebutton.main.events.BBBEvent;
import org.bigbluebutton.modules.screenshare.events.WebRTCViewStreamEvent;
import org.bigbluebutton.modules.screenshare.services.red5.WebRTCConnectionEvent;
import org.bigbluebutton.modules.screenshare.events.WebRTCViewStreamEvent;
import org.bigbluebutton.modules.screenshare.services.red5.WebRTCConnectionEvent;
public class WebRTCConnection {
private static const LOGGER:ILogger = getClassLogger(Connection);
@ -168,6 +168,12 @@ package org.bigbluebutton.modules.screenshare.services.red5
private function netStatusHandler(event:NetStatusEvent):void {
LOGGER.debug("Connected to [" + getURI() + "]. [" + event.info.code + "]");
var logData:Object = {};
logData.type = "ConnectionStatusChanged";
logData.newStatus = event.info.code;
logData.connection = getURI();
LOGGER.info(JSON.stringify(logData));
if (retryTimer) {
retryCount = 0;
LOGGER.debug("Cancelling retry timer.");
@ -211,7 +217,7 @@ package org.bigbluebutton.modules.screenshare.services.red5
LOGGER.debug(result);
},
function(status:String):void { // status - On error occurred
LOGGER.error(status);
LOGGER.error(status);
}
);
@ -257,7 +263,8 @@ package org.bigbluebutton.modules.screenshare.services.red5
break;
case "NetConnection.Connect.NetworkChange":
LOGGER.info("Detected network change. User might be on a wireless and temporarily dropped connection. Doing nothing. Just making a note.");
// LOGGER.info("Detected network change. User might be on a wireless and
// temporarily dropped connection. Doing nothing. Just making a note.");
break;
default :