From b86a990612fa52ae3fd3f6b607cdbaaff1e20527 Mon Sep 17 00:00:00 2001 From: Maxim Khlobystov <maxim.khlobystov@gmail.com> Date: Fri, 1 Feb 2019 14:12:06 -0500 Subject: [PATCH] Add logCode and build number to log messages --- bigbluebutton-html5/client/main.jsx | 2 +- .../imports/api/audio/client/bridge/kurento.js | 2 +- bigbluebutton-html5/imports/api/audio/client/bridge/sip.js | 2 +- .../imports/api/screenshare/client/bridge/kurento.js | 4 ++-- bigbluebutton-html5/imports/startup/client/base.jsx | 6 +++--- bigbluebutton-html5/imports/startup/client/logger.js | 1 + .../ui/components/actions-bar/desktop-share/component.jsx | 4 ++-- bigbluebutton-html5/imports/ui/components/app/component.jsx | 2 +- .../ui/components/audio/device-selector/component.jsx | 4 ++-- .../imports/ui/components/join-handler/component.jsx | 6 +++--- .../presentation/presentation-uploader/component.jsx | 2 +- .../imports/ui/components/video-preview/component.jsx | 2 +- .../imports/ui/components/whiteboard/service.js | 2 +- .../imports/ui/services/audio-manager/index.js | 6 +++--- bigbluebutton-html5/imports/ui/services/auth/index.js | 2 +- 15 files changed, 24 insertions(+), 23 deletions(-) diff --git a/bigbluebutton-html5/client/main.jsx b/bigbluebutton-html5/client/main.jsx index 7eea3c5c44..6b95921e6e 100755 --- a/bigbluebutton-html5/client/main.jsx +++ b/bigbluebutton-html5/client/main.jsx @@ -19,7 +19,7 @@ Meteor.startup(() => { } else { message += `\n${stack}`; } - logger.error(message); + logger.error({ logCode: 'startup_error' }, message); }); // TODO make this a Promise diff --git a/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js b/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js index 2608e1dd42..1edbee5157 100644 --- a/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js +++ b/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js @@ -130,7 +130,7 @@ export default class KurentoAudioBridge extends BaseAudioBridge { await audioContext.setSinkId(value); this.media.outputDeviceId = value; } catch (err) { - logger.error(err); + logger.error({ logCode: 'audio_kurento_changeoutputdevice_error' }, err); throw new Error(this.baseErrorCodes.MEDIA_ERROR); } } diff --git a/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js b/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js index 6c7492068c..387044252a 100755 --- a/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js +++ b/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js @@ -395,7 +395,7 @@ export default class SIPBridge extends BaseAudioBridge { await audioContext.setSinkId(value); this.media.outputDeviceId = value; } catch (err) { - logger.error(err); + logger.error({ logCode: 'audio_sip_changeoutputdevice_error' }, err); throw new Error(this.baseErrorCodes.MEDIA_ERROR); } } diff --git a/bigbluebutton-html5/imports/api/screenshare/client/bridge/kurento.js b/bigbluebutton-html5/imports/api/screenshare/client/bridge/kurento.js index 3c22b70b55..7c70464abd 100755 --- a/bigbluebutton-html5/imports/api/screenshare/client/bridge/kurento.js +++ b/bigbluebutton-html5/imports/api/screenshare/client/bridge/kurento.js @@ -56,7 +56,7 @@ export default class KurentoScreenshareBridge { try { iceServers = await fetchWebRTCMappedStunTurnServers(getSessionToken()); } catch (error) { - logger.error('Screenshare bridge failed to fetch STUN/TURN info, using default'); + logger.error({ logCode: 'kurentowatchvideo_fetchstunturninfo_error' }, 'Screenshare bridge failed to fetch STUN/TURN info, using default'); } finally { const options = { wsUrl: SFU_URL, @@ -85,7 +85,7 @@ export default class KurentoScreenshareBridge { try { iceServers = await fetchWebRTCMappedStunTurnServers(getSessionToken()); } catch (error) { - logger.error('Screenshare bridge failed to fetch STUN/TURN info, using default'); + logger.error({ logCode: 'kurentosharescreen_fetchstunturninfo_error' }, 'Screenshare bridge failed to fetch STUN/TURN info, using default'); } finally { const options = { wsUrl: SFU_URL, diff --git a/bigbluebutton-html5/imports/startup/client/base.jsx b/bigbluebutton-html5/imports/startup/client/base.jsx index 3a061b1314..318a85d219 100755 --- a/bigbluebutton-html5/imports/startup/client/base.jsx +++ b/bigbluebutton-html5/imports/startup/client/base.jsx @@ -78,7 +78,7 @@ class Base extends Component { } if (codeError) { - logger.error(`User could not log in HTML5, hit ${codeError}`); + logger.error({ logCode: 'startup_client_usercouldnotlogin_error' }, `User could not log in HTML5, hit ${codeError}`); return (<ErrorScreen code={codeError} />); } @@ -88,7 +88,7 @@ class Base extends Component { // this.props.annotationsHandler.stop(); if (subscriptionsReady) { - logger.info('Subscriptions are ready'); + logger.info({ logCode: 'startup_client_subscriptions_ready' }, 'Subscriptions are ready'); } return (<AppContainer {...this.props} baseControls={stateControls} />); @@ -130,7 +130,7 @@ const BaseContainer = withTracker(() => { const subscriptionErrorHandler = { onError: (error) => { - logger.error(error); + logger.error({ logCode: 'startup_client_subscription_error' }, error); Session.set('isMeetingEnded', true); Session.set('codeError', error.error); }, diff --git a/bigbluebutton-html5/imports/startup/client/logger.js b/bigbluebutton-html5/imports/startup/client/logger.js index 6b8dc02b9b..4ba4cd3a6b 100755 --- a/bigbluebutton-html5/imports/startup/client/logger.js +++ b/bigbluebutton-html5/imports/startup/client/logger.js @@ -27,6 +27,7 @@ class ServerLoggerStream extends ServerStream { if (fullInfo.meetingId != null) { this.rec.clientInfo = fullInfo; } + this.rec.clientBuild = Meteor.settings.public.app.html5ClientBuild; return super.write(this.rec); } } diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/desktop-share/component.jsx b/bigbluebutton-html5/imports/ui/components/actions-bar/desktop-share/component.jsx index 1a2ce6c29e..8bc46b7639 100755 --- a/bigbluebutton-html5/imports/ui/components/actions-bar/desktop-share/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/actions-bar/desktop-share/component.jsx @@ -60,11 +60,11 @@ const DesktopShare = ({ switch (error) { case ICE_CONNECTION_FAILED: kurentoExitScreenShare(); - logger.error('Ice connection state error'); + logger.error({ logCode: 'desktopshare_iceconnectionstate_error' }, 'Ice connection state error'); notify(intl.formatMessage(intlMessages.iceConnectionStateError), 'error', 'desktop'); break; default: - logger.error(error || 'Default error handler'); + logger.error({ logCode: 'desktopshare_default_error' }, error || 'Default error handler'); } }; return (screenSharingCheck && !isMobileBrowser && isUserPresenter ? diff --git a/bigbluebutton-html5/imports/ui/components/app/component.jsx b/bigbluebutton-html5/imports/ui/components/app/component.jsx index 435c131a01..62b9d7586f 100755 --- a/bigbluebutton-html5/imports/ui/components/app/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/app/component.jsx @@ -90,7 +90,7 @@ class App extends Component { this.handleWindowResize(); window.addEventListener('resize', this.handleWindowResize, false); - logger.info('Client loaded successfully'); + logger.info({ logCode: 'app_component_componentdidmount' }, 'Client loaded successfully'); } componentWillUnmount() { diff --git a/bigbluebutton-html5/imports/ui/components/audio/device-selector/component.jsx b/bigbluebutton-html5/imports/ui/components/audio/device-selector/component.jsx index 8e8fafd0c9..9d07273bcc 100644 --- a/bigbluebutton-html5/imports/ui/components/audio/device-selector/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/audio/device-selector/component.jsx @@ -34,7 +34,7 @@ class DeviceSelector extends Component { componentDidMount() { const handleEnumerateDevicesSuccess = (deviceInfos) => { const devices = deviceInfos.filter(d => d.kind === this.props.kind); - logger.info(`Success on enumerateDevices() for ${this.props.kind}: ${JSON.stringify(devices)}`); + logger.info({ logCode: 'audiodeviceselector_component_enumeratedevices_success' }, `Success on enumerateDevices() for ${this.props.kind}: ${JSON.stringify(devices)}`); this.setState({ devices, options: devices.map((d, i) => ({ @@ -49,7 +49,7 @@ class DeviceSelector extends Component { .enumerateDevices() .then(handleEnumerateDevicesSuccess) .catch((err) => { - logger.error(`Error on enumerateDevices(): ${JSON.stringify(err)}`); + logger.error({ logCode: 'audiodeviceselector_component_enumeratedevices_error' }, `Error on enumerateDevices(): ${JSON.stringify(err)}`); }); } diff --git a/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx b/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx index 0064b02d21..49931ea6e9 100644 --- a/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx @@ -66,7 +66,7 @@ class JoinHandler extends Component { location: window.location.href, }; - logger.info(clientInfo); + logger.info({ logCode: 'joinhandler_component_clientinfo' }, clientInfo); }; const setAuth = (resp) => { @@ -127,11 +127,11 @@ class JoinHandler extends Component { Session.set('openPanel', ''); } - logger.info(`User successfully went through main.joinRouteHandler with [${JSON.stringify(response)}].`); + logger.info({ logCode: 'joinhandler_component_joinroutehandler_success' }, `User successfully went through main.joinRouteHandler with [${JSON.stringify(response)}].`); } else { const e = new Error(response.message); if (!Session.get('codeError')) Session.set('errorMessageDescription', response.message); - logger.error(`User faced [${e}] on main.joinRouteHandler. Error was:`, JSON.stringify(response)); + logger.error({ logCode: 'joinhandler_component_joinroutehandler_error' }, `User faced [${e}] on main.joinRouteHandler. Error was:`, JSON.stringify(response)); } this.changeToJoin(true); } diff --git a/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx b/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx index 2353afa111..24a877e5f4 100755 --- a/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx @@ -224,7 +224,7 @@ class PresentationUploader extends Component { .catch((error) => { notify(this.props.intl.formatMessage(intlMessages.genericError), 'error'); - logger.error(error); + logger.error({ logCode: 'presentationuploader_component_save_error' }, error); this.setState({ disableActions: false, diff --git a/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx b/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx index 33f66e942e..fc7201ddae 100644 --- a/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx @@ -107,7 +107,7 @@ class VideoPreview extends Component { const errorMessage = intlMessages[error.name] || intlMessages.permissionError; notify(intl.formatMessage(errorMessage), 'error', 'video'); - logger.error(error); + logger.error({ logCode: 'videopreview_component_gum_error' }, error); } handleSelectWebcam(event) { diff --git a/bigbluebutton-html5/imports/ui/components/whiteboard/service.js b/bigbluebutton-html5/imports/ui/components/whiteboard/service.js index 1116c54dc4..c246355ba7 100755 --- a/bigbluebutton-html5/imports/ui/components/whiteboard/service.js +++ b/bigbluebutton-html5/imports/ui/components/whiteboard/service.js @@ -53,7 +53,7 @@ function handleAddedAnnotation({ Annotations.upsert(query.selector, query.modifier, (err) => { if (err) { - logger.error(err); + logger.error({ logCode: 'whiteboard_annotation_upsert_error' }, err); return; } diff --git a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js index d311901fb1..7348982e0c 100755 --- a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js +++ b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js @@ -175,7 +175,7 @@ class AudioManager { clearTimeout(iceGatheringTimeout); } - logger.error('Listen only error:', err, 'on try', retries); + logger.error({ logCode: 'audiomanager_listenonly_error' }, 'Listen only error:', err, 'on try', retries); throw { type: 'MEDIA_ERROR', message: this.messages.error.MEDIA_ERROR, @@ -314,7 +314,7 @@ class AudioManager { } else if (status === FAILED) { this.error = error; this.notify(this.messages.error[error] || this.messages.error.GENERIC_ERROR, true); - logger.error('Audio Error:', error, bridgeError); + logger.error({ logCode: 'audiomanager_audio_error' }, 'Audio Error:', error, bridgeError); this.exitAudio(); this.onAudioExit(); } @@ -338,7 +338,7 @@ class AudioManager { audio.src = 'resources/sounds/silence.mp3'; audio.play().catch((e) => { - logger.warn('Error on playing test audio:', e); + logger.warn({ logCode: 'audiomanager_error_test_audio' }, 'Error on playing test audio:', e); }); return dest.stream; diff --git a/bigbluebutton-html5/imports/ui/services/auth/index.js b/bigbluebutton-html5/imports/ui/services/auth/index.js index 95b8fa9b80..74fb773491 100755 --- a/bigbluebutton-html5/imports/ui/services/auth/index.js +++ b/bigbluebutton-html5/imports/ui/services/auth/index.js @@ -218,7 +218,7 @@ class Auth { // Skip in case the user is not in the collection yet or is a dummy user if (!User || !('intId' in User)) { - logger.info('re-send validateAuthToken for delayed authentication'); + logger.info({ logCode: 'auth_service_resend_validateauthtoken' }, 're-send validateAuthToken for delayed authentication'); makeCall('validateAuthToken'); return; } -- GitLab