From 3fcb95ab4475da5bdce0cec06c9bbfc53874b63f Mon Sep 17 00:00:00 2001 From: Anton Georgiev <anto.georgiev@gmail.com> Date: Fri, 28 Jun 2019 21:45:50 +0000 Subject: [PATCH] log structure {logCode, extraInfo}, comment --- .../imports/api/audio/client/bridge/sip.js | 28 +++++-- .../actions-bar/desktop-share/component.jsx | 7 +- .../imports/ui/components/app/component.jsx | 1 - .../audio/device-selector/component.jsx | 41 ++++++---- .../ui/components/captions/pad/component.jsx | 5 +- .../external-video-player/component.jsx | 14 +++- .../ui/components/join-handler/component.jsx | 21 ++++- .../ui/components/meeting-ended/component.jsx | 4 +- .../presentation-uploader/component.jsx | 5 +- .../ui/components/subscriptions/component.jsx | 5 +- .../ui/components/video-preview/component.jsx | 80 ++++++++++++++++--- .../components/video-provider/component.jsx | 4 +- .../video-list/video-list-item/component.jsx | 8 +- .../ui/components/whiteboard/service.js | 20 ++--- .../ui/services/audio-manager/index.js | 21 ++++- .../ui/services/network-information/index.js | 7 +- 16 files changed, 206 insertions(+), 65 deletions(-) diff --git a/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js b/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js index cabc27c16c..12a66f846e 100755 --- a/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js +++ b/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js @@ -42,7 +42,10 @@ class SIPSession { // There will sometimes we erroneous errors put out like timeouts and improper shutdowns, // but only the first error ever matters if (this.alreadyErrored) { - logger.info({ logCode: 'sip_js_absorbing_callback_message' }, `Absorbing a redundant callback message. ${JSON.stringify(message)}`); + logger.info({ + logCode: 'sip_js_absorbing_callback_message', + extraInfo: { message }, + }, 'Absorbing a redundant callback message.'); return; } @@ -97,7 +100,7 @@ class SIPSession { const timeout = setInterval(() => { clearInterval(timeout); - logger.error({ logCode: 'sip_js_transfer_timed_out' }, 'Timeout on transfering from echo test to conference'); + logger.error({ logCode: 'sip_js_transfer_timed_out' }, 'Timeout on transferring from echo test to conference'); this.callback({ status: this.baseCallStates.failed, error: 1008, @@ -188,15 +191,15 @@ class SIPSession { // translation const isSafari = browser().name === 'safari'; - logger.debug('Creating the user agent'); + logger.debug({ logCode: 'creating_user_agent' }, 'Creating the user agent'); if (this.userAgent && this.userAgent.isConnected()) { if (this.userAgent.configuration.hostPortParams === this.hostname) { - logger.debug('Reusing the user agent'); + logger.debug({ logCode: 'reusing_user_agent' }, 'Reusing the user agent'); resolve(this.userAgent); return; } - logger.debug('different host name. need to kill'); + logger.debug({ logCode: 'different_host_name' }, 'Different host name. need to kill'); } let userAgentConnected = false; @@ -348,7 +351,10 @@ class SIPSession { currentSession.on('progress', handleSessionProgress); const handleConnectionCompleted = (peer) => { - logger.info({ logCode: 'sip_js_ice_connection_success' }, `ICE connection success. Current state - ${peer.iceConnectionState}`); + logger.info({ + logCode: 'sip_js_ice_connection_success', + extraInfo: { currentState: peer.iceConnectionState }, + }, `ICE connection success. Current state - ${peer.iceConnectionState}`); clearTimeout(callTimeout); clearTimeout(iceNegotiationTimeout); connectionCompletedEvents.forEach(e => mediaHandler.off(e, handleConnectionCompleted)); @@ -369,7 +375,10 @@ class SIPSession { }); } - logger.error({ logCode: 'sip_js_call_terminated' }, `Audio call terminated. cause=${cause}`); + logger.error({ + logCode: 'sip_js_call_terminated', + extraInfo: { cause }, + }, `Audio call terminated. cause=${cause}`); let mappedCause; if (!iceCompleted) { @@ -592,7 +601,10 @@ export default class SIPBridge extends BaseAudioBridge { await audioContext.setSinkId(value); this.media.outputDeviceId = value; } catch (err) { - logger.error({ logCode: 'audio_sip_changeoutputdevice_error' }, err); + logger.error({ + logCode: 'audio_sip_changeoutputdevice_error', + extraInfo: { error: err }, + }, 'Change Output Device error'); throw new Error(this.baseErrorCodes.MEDIA_ERROR); } } 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 93a266679d..1b35a4b52e 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 @@ -72,7 +72,12 @@ const DesktopShare = ({ notify(intl.formatMessage(intlMessages.iceConnectionStateError), 'error', 'desktop'); break; default: - logger.error({ logCode: 'desktopshare_default_error' }, error || 'Default error handler'); + logger.error({ + logCode: 'desktopshare_default_error', + extraInfo: { + maybeError: error || 'Default error handler', + }, + }, 'Default error handler for screenshare'); } screenShareEndAlert(); }; diff --git a/bigbluebutton-html5/imports/ui/components/app/component.jsx b/bigbluebutton-html5/imports/ui/components/app/component.jsx index 1480cff609..e5edf8b22b 100755 --- a/bigbluebutton-html5/imports/ui/components/app/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/app/component.jsx @@ -141,7 +141,6 @@ class App extends Component { startBandwidthMonitoring(); } - logger.info({ logCode: 'app_component_componentdidmount' }, 'Client loaded successfully'); } 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 4b8cba49aa..fbee2dd8df 100644 --- a/bigbluebutton-html5/imports/ui/components/audio/device-selector/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/audio/device-selector/component.jsx @@ -3,8 +3,8 @@ import _ from 'lodash'; import PropTypes from 'prop-types'; import cx from 'classnames'; import logger from '/imports/startup/client/logger'; -import { styles } from '../audio-modal/styles'; import browser from 'browser-detect'; +import { styles } from '../audio-modal/styles'; const propTypes = { kind: PropTypes.oneOf(['audioinput', 'audiooutput', 'videoinput']), @@ -33,13 +33,20 @@ class DeviceSelector extends Component { } componentDidMount() { + const { kind } = this.props; const handleEnumerateDevicesSuccess = (deviceInfos) => { - const devices = deviceInfos.filter(d => d.kind === this.props.kind); - logger.info({ logCode: 'audiodeviceselector_component_enumeratedevices_success' }, `Success on enumerateDevices() for ${this.props.kind}: ${JSON.stringify(devices)}`); + const devices = deviceInfos.filter(d => d.kind === kind); + logger.info({ + logCode: 'audiodeviceselector_component_enumeratedevices_success', + extraInfo: { + deviceKind: kind, + devices, + }, + }, 'Success on enumerateDevices() for audio'); this.setState({ devices, options: devices.map((d, i) => ({ - label: d.label || `${this.props.kind} - ${i}`, + label: d.label || `${kind} - ${i}`, value: d.deviceId, key: _.uniqueId('device-option-'), })), @@ -50,15 +57,20 @@ class DeviceSelector extends Component { .enumerateDevices() .then(handleEnumerateDevicesSuccess) .catch((err) => { - logger.error({ logCode: 'audiodeviceselector_component_enumeratedevices_error' }, `Error on enumerateDevices(): ${JSON.stringify(err)}`); + logger.error({ + logCode: 'audiodeviceselector_component_enumeratedevices_error', + extraInfo: { + deviceKind: kind, + }, + }, 'Error on enumerateDevices(): '); }); } handleSelectChange(event) { const { value } = event.target; - const { onChange } = this.props; + const { onChange, devices } = this.props; this.setState({ value }, () => { - const selectedDevice = this.state.devices.find(d => d.deviceId === value); + const selectedDevice = devices.find(d => d.deviceId === value); onChange(selectedDevice.deviceId, selectedDevice, event); }); } @@ -79,20 +91,19 @@ class DeviceSelector extends Component { className={cx(styles.select, className)} > { - options.length ? - options.map(option => ( + options.length + ? options.map(option => ( <option key={option.key} value={option.value} > {option.label} </option> - )) : - ( - (kind == 'audiooutput' && browser().name == 'safari') ? - <option value="not-found">Default</option> - : - <option value="not-found">{`no ${kind} found`}</option> + )) + : ( + (kind == 'audiooutput' && browser().name == 'safari') + ? <option value="not-found">Default</option> + : <option value="not-found">{`no ${kind} found`}</option> ) } </select> diff --git a/bigbluebutton-html5/imports/ui/components/captions/pad/component.jsx b/bigbluebutton-html5/imports/ui/components/captions/pad/component.jsx index 23fcd6b55a..0330d2189e 100644 --- a/bigbluebutton-html5/imports/ui/components/captions/pad/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/captions/pad/component.jsx @@ -157,7 +157,10 @@ class Pad extends PureComponent { }; this.recognition.onerror = (event) => { - logger.error({ logCode: 'captions_recognition' }, event.error); + logger.error({ + logCode: 'captions_recognition', + extraInfo: { error: event.error }, + }, 'Captions pad error on recognition'); }; } } diff --git a/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx b/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx index f6c4d668a7..d9400ffe29 100644 --- a/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx @@ -135,12 +135,22 @@ class VideoPlayer extends Component { if (data.rate !== this.player.getPlaybackRate()) { this.player.setPlaybackRate(data.rate); - logger.debug({ logCode: 'external_video_client_update_rate' }, 'Change external video playback rate to:', data.rate); + logger.debug({ + logCode: 'external_video_client_update_rate', + extraInfo: { + rate: data.rate, + }, + }, 'Change external video playback rate to:'); } if (Math.abs(this.player.getCurrentTime() - data.time) > SYNC_INTERVAL_SECONDS) { this.player.seekTo(data.time, true); - logger.debug({ logCode: 'external_video_client_update_seek' }, 'Seek external video to:', data.time); + logger.debug({ + logCode: 'external_video_client_update_seek', + extraInfo: { + time: data.time, + }, + }, 'Seek external video to:'); } if (this.playerState !== data.state) { diff --git a/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx b/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx index a038e3ff53..135c280c85 100644 --- a/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx @@ -66,7 +66,11 @@ class JoinHandler extends Component { location: window.location.href, }; - logger.info({ logCode: 'joinhandler_component_clientinfo' }, clientInfo); + logger.info({ + logCode: 'joinhandler_component_clientinfo', + extraInfo: { clientInfo }, + }, + 'Log informatin about the client'); }; const setAuth = (resp) => { @@ -135,11 +139,22 @@ class JoinHandler extends Component { Session.set('openPanel', ''); } - logger.info({ logCode: 'joinhandler_component_joinroutehandler_success' }, `User successfully went through main.joinRouteHandler with [${JSON.stringify(response)}].`); + logger.info({ + logCode: 'joinhandler_component_joinroutehandler_success', + extraInfo: { + response, + }, + }, 'User successfully went through main.joinRouteHandler'); } else { const e = new Error(response.message); if (!Session.get('codeError')) Session.set('errorMessageDescription', response.message); - logger.error({ logCode: 'joinhandler_component_joinroutehandler_error' }, `User faced [${e}] on main.joinRouteHandler. Error was:`, JSON.stringify(response)); + logger.error({ + logCode: 'joinhandler_component_joinroutehandler_error', + extraInfo: { + response, + error: e, + }, + }, 'User faced an error on main.joinRouteHandler.'); } this.changeToJoin(true); } diff --git a/bigbluebutton-html5/imports/ui/components/meeting-ended/component.jsx b/bigbluebutton-html5/imports/ui/components/meeting-ended/component.jsx index af697fdc5d..64393e6f25 100755 --- a/bigbluebutton-html5/imports/ui/components/meeting-ended/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/meeting-ended/component.jsx @@ -142,7 +142,7 @@ class MeetingEnded extends React.PureComponent { }; // client logger - logger.info({ feedback: message, logCode: 'feedback' }, 'Feedback'); + logger.info({ logCode: 'feedback_functionality', extraInfo: { feedback: message } }, 'Feedback component'); const FEEDBACK_WAIT_TIME = 500; setTimeout(() => { @@ -164,7 +164,7 @@ class MeetingEnded extends React.PureComponent { const noRating = selected <= 0; - logger.info({ endedCode: code, logCode: 'meeting_ended_code' }, code); + logger.info({ logCode: 'meeting_ended_code', extraInfo: { endedCode: code } }, 'Meeting ended component'); return ( <div className={styles.parent}> 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 62d3db60b7..9d579f4692 100755 --- a/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx @@ -294,7 +294,10 @@ class PresentationUploader extends Component { }) .catch((error) => { notify(intl.formatMessage(intlMessages.genericError), 'error'); - logger.error({ logCode: 'presentationuploader_component_save_error' }, error); + logger.error({ + logCode: 'presentationuploader_component_save_error', + extraInfo: { error }, + }, 'Presentation uploader catch error on confirm'); this.setState({ disableActions: false, diff --git a/bigbluebutton-html5/imports/ui/components/subscriptions/component.jsx b/bigbluebutton-html5/imports/ui/components/subscriptions/component.jsx index 95db3ea25c..d5bc4124af 100644 --- a/bigbluebutton-html5/imports/ui/components/subscriptions/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/subscriptions/component.jsx @@ -43,7 +43,10 @@ export default withTracker(() => { } const subscriptionErrorHandler = { onError: (error) => { - logger.error({ logCode: 'startup_client_subscription_error' }, error); + logger.error({ + logCode: 'startup_client_subscription_error', + extraInfo: { error }, + }, 'Error while subscribing to collections'); Session.set('codeError', error.error); }, }; diff --git a/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx b/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx index 0946f0baf3..3391b4ba15 100755 --- a/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx @@ -220,7 +220,13 @@ class VideoPreview extends Component { if (!this._isMounted) return; // webcam might no longer exist or be available - logger.debug(`Error with profile: ${CAMERA_PROFILES[currNum].name}`); + logger.debug({ + logCode: 'video_preview_check_webcam', + extraInfo: { + camProfile: CAMERA_PROFILES[currNum], + currNum, + }, + }, 'Error with camera profile'); this.handleGUMError(error); @@ -234,13 +240,27 @@ class VideoPreview extends Component { this.doGUM(deviceId, CAMERA_PROFILES[currNum]).then((stream) => { if (!this._isMounted) return; - logger.debug(`Display preview came back for profile: ${CAMERA_PROFILES[currNum].name}`); + logger.debug({ + logCode: 'video_preview_next_profile', + extraInfo: { + camProfile: CAMERA_PROFILES[currNum], + currNum, + }, + }, 'Display preview came back'); + this.video.srcObject = stream; this.deviceStream = stream; }).catch((error) => { if (!this._isMounted) return; - logger.debug(`Error with fetching profile {${CAMERA_PROFILES[currNum].name}} skipping to next profile. Error is {${error.name}}`); + logger.debug({ + logCode: 'video_preview_next_profile', + extraInfo: { + camProfile: CAMERA_PROFILES[currNum], + currNum, + error, + }, + }, 'Error with fetching profile, skipping to next'); currNum++; nextProfile(); }); @@ -260,10 +280,22 @@ class VideoPreview extends Component { if (this.video.videoWidth !== previousWidth || this.video.videoHeight !== previousHeight) { previousWidth = this.video.videoWidth; previousHeight = this.video.videoHeight; - logger.debug(`Found profile ${CAMERA_PROFILES[currNum].name}`); + logger.debug({ + logCode: 'video_preview_found_profile', + extraInfo: { + camProfile: CAMERA_PROFILES[currNum], + currNum, + }, + }, 'Found profile'); availableProfiles.push(CAMERA_PROFILES[currNum]); } else { - logger.debug(`Not including profile ${CAMERA_PROFILES[currNum].name}`); + logger.debug({ + logCode: 'video_preview_not_including_profile', + extraInfo: { + camProfile: CAMERA_PROFILES[currNum], + currNum, + }, + }, 'Not including profile'); } currNum++; @@ -276,7 +308,12 @@ class VideoPreview extends Component { if (availableProfiles.length > 0) { const defaultProfile = availableProfiles.find(profile => profile.default) || availableProfiles[0]; - logger.debug(`Found default profile: ${JSON.stringify(defaultProfile)}`); + logger.debug({ + logCode: 'video_preview_found_default_profile', + extraInfo: { + defaultProfile, + }, + }, 'Found default profile'); this.displayPreview(deviceId, defaultProfile); } @@ -321,8 +358,12 @@ class VideoPreview extends Component { this.video.srcObject = stream; this.deviceStream = stream; }).catch((error) => { - logger.warning({ logCode: 'video_preview_error' }, `Error displaying final selection. name: [${error.name}] message: [${error.message}]`); - // logger.debug(error); + logger.warning({ + logCode: 'video_preview_do_gum_preview_error', + extraInfo: { + error, + }, + }, 'Error displaying final selection.'); }); } @@ -353,7 +394,14 @@ class VideoPreview extends Component { } }); - logger.debug(`Enumerate devices came back. There are ${devices.length} devices and ${webcams.length} are video inputs`); + logger.debug({ + logCode: 'video_preview_enumerate_devices', + extraInfo: { + devices, + webcams, + }, + }, `Enumerate devices came back. There are ${devices.length} devices and ${webcams.length} are video inputs`); + if (initialDeviceId) { this.setState({ @@ -364,13 +412,23 @@ class VideoPreview extends Component { } }).catch((error) => { // CHANGE THIS TO SOMETHING USEFUL - logger.warning(`Error enumerating devices. name: [${error.name}] message: [${error.message}]`); + logger.warning({ + logCode: 'video_preview_enumerate_error', + extraInfo: { + error, + }, + }, 'Error enumerating devices'); this.handleGUMError(error); }); }); } catch (error) { // CHANGE THIS TO SOMETHING USEFUL - logger.warning(`Error grabbing initial video stream. name: [${error.name}] message: [${error.message}]`); + logger.warning({ + logCode: 'video_preview_grabbing_error', + extraInfo: { + error, + }, + }, 'Error grabbing initial video stream'); this.handleGUMError(error); } } diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx index 6206696881..4afc42391b 100755 --- a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx @@ -356,7 +356,7 @@ class VideoProvider extends Component { this.logger('debug', 'Calling pause in viewer streams', 'video_provider_pause_viewers'); Object.keys(this.webRtcPeers).forEach((id) => { - if (userId !== id && this.webRtcPeers[id].started) { + if (userId !== id && this.webRtcPeers[id] && this.webRtcPeers[id].started) { this._sendPauseStream(id, 'viewer', true); } }); @@ -367,7 +367,7 @@ class VideoProvider extends Component { this.logger('debug', 'Calling un-pause in viewer streams', 'video_provider_unpause_viewers'); Object.keys(this.webRtcPeers).forEach((id) => { - if (id !== userId && this.webRtcPeers[id].started) { + if (id !== userId && this.webRtcPeers[id] && this.webRtcPeers[id].started) { this._sendPauseStream(id, 'viewer', false); } }); diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx index 5a67965a6d..c58783738b 100755 --- a/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx @@ -53,10 +53,10 @@ class VideoListItem extends Component { if (p && (typeof Promise !== 'undefined') && (p instanceof Promise)) { // Catch exception when playing video p.catch((e) => { - logger.warn( - { logCode: 'videolistitem_component_play_error' }, - `Could not play video: ${JSON.stringify(e)}`, - ); + logger.warning({ + logCode: 'videolistitem_component_play_error', + extraInfo: { error: e }, + }, 'Could not play video'); }); } } diff --git a/bigbluebutton-html5/imports/ui/components/whiteboard/service.js b/bigbluebutton-html5/imports/ui/components/whiteboard/service.js index 3b08dbf87e..714142f974 100755 --- a/bigbluebutton-html5/imports/ui/components/whiteboard/service.js +++ b/bigbluebutton-html5/imports/ui/components/whiteboard/service.js @@ -43,8 +43,8 @@ function handleAddedAnnotation({ Annotations.update(fakeAnnotation._id, { $set: { position: annotation.position, - 'annotationInfo.color': isEqual(fakePoints, lastPoints) || annotation.status === DRAW_END ? - annotation.annotationInfo.color : fakeAnnotation.annotationInfo.color, + 'annotationInfo.color': isEqual(fakePoints, lastPoints) || annotation.status === DRAW_END + ? annotation.annotationInfo.color : fakeAnnotation.annotationInfo.color, }, $inc: { version: 1 }, // TODO: Remove all this version stuff }); @@ -54,7 +54,10 @@ function handleAddedAnnotation({ Annotations.upsert(query.selector, query.modifier, (err) => { if (err) { - logger.error({ logCode: 'whiteboard_annotation_upsert_error' }, err); + logger.error({ + logCode: 'whiteboard_annotation_upsert_error', + extraInfo: { error: err }, + }, 'Error on adding an annotation'); return; } @@ -117,9 +120,9 @@ function increaseBrightness(realHex, percent) { const b = parseInt(hex.substr(4, 2), 16); /* eslint-disable no-bitwise, no-mixed-operators */ - return parseInt(((0 | (1 << 8) + r + ((256 - r) * percent) / 100).toString(16)).substr(1) + - ((0 | (1 << 8) + g + ((256 - g) * percent) / 100).toString(16)).substr(1) + - ((0 | (1 << 8) + b + ((256 - b) * percent) / 100).toString(16)).substr(1), 16); + return parseInt(((0 | (1 << 8) + r + ((256 - r) * percent) / 100).toString(16)).substr(1) + + ((0 | (1 << 8) + g + ((256 - g) * percent) / 100).toString(16)).substr(1) + + ((0 | (1 << 8) + b + ((256 - b) * percent) / 100).toString(16)).substr(1), 16); /* eslint-enable no-bitwise, no-mixed-operators */ } @@ -144,11 +147,10 @@ const proccessAnnotationsQueue = async () => { const annotations = annotationsQueue.splice(0, queueSize); // console.log('annotationQueue.length', annotationsQueue, annotationsQueue.length); - await makeCall('sendBulkAnnotations', annotations.filter(({ id }) => !discardedList.includes(id))) + await makeCall('sendBulkAnnotations', annotations.filter(({ id }) => !discardedList.includes(id))); // ask tiago - const delayPerc = - Math.min(annotationsMaxDelayQueueSize, queueSize) / annotationsMaxDelayQueueSize; + const delayPerc = Math.min(annotationsMaxDelayQueueSize, queueSize) / annotationsMaxDelayQueueSize; const delayDelta = annotationsBufferTimeMax - annotationsBufferTimeMin; const delayTime = annotationsBufferTimeMin + (delayDelta * delayPerc); setTimeout(proccessAnnotationsQueue, delayTime); diff --git a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js index 655fe1597b..ca29cdb410 100755 --- a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js +++ b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js @@ -184,7 +184,13 @@ class AudioManager { clearTimeout(iceGatheringTimeout); } - logger.error({ logCode: 'audiomanager_listenonly_error' }, `Listen only error:${JSON.stringify(err)} on try ${retries}`); + logger.error({ + logCode: 'audiomanager_listenonly_error', + extraInfo: { + error: err, + retries, + }, + }, 'Listen only error'); throw { type: 'MEDIA_ERROR', message: this.messages.error.MEDIA_ERROR, @@ -331,7 +337,13 @@ class AudioManager { const errorKey = this.messages.error[error] || this.messages.error.GENERIC_ERROR; const errorMsg = this.intl.formatMessage(errorKey, { 0: bridgeError }); this.error = !!error; - logger.error({ logCode: 'audio_failure', error, cause: bridgeError }, `Audio Error ${JSON.stringify(errorMsg)}`); + logger.error({ + logCode: 'audio_failure', + extraInfo: { + error, + cause: bridgeError, + }, + }, 'Audio Error'); if (silenceNotifications !== true) { this.notify(errorMsg, true); this.exitAudio(); @@ -362,7 +374,10 @@ class AudioManager { audio.src = 'resources/sounds/silence.mp3'; audio.play().catch((e) => { - logger.warn({ logCode: 'audiomanager_error_test_audio' }, 'Error on playing test audio:', e); + logger.warning({ + logCode: 'audiomanager_error_test_audio', + extraInfo: { error: e }, + }, 'Error on playing test audio'); }); return dest.stream; diff --git a/bigbluebutton-html5/imports/ui/services/network-information/index.js b/bigbluebutton-html5/imports/ui/services/network-information/index.js index c665bb5fc0..2c336ca953 100644 --- a/bigbluebutton-html5/imports/ui/services/network-information/index.js +++ b/bigbluebutton-html5/imports/ui/services/network-information/index.js @@ -150,7 +150,12 @@ export const startBandwidthMonitoring = () => { if (lastEffectiveConnectionType && lastEffectiveConnectionType.effectiveConnectionType !== effectiveType) { - logger.info({ logCode: 'user_connection_instability' }, `User ${Auth.userID} effective connection is now ${effectiveType}`); + logger.info({ + logCode: 'user_connection_instability', + extraInfo: { + effectiveType, + }, + }, `User ${Auth.userID} effective connection is now ${effectiveType}`); makeCall('setUserEffectiveConnectionType', effectiveType); } }, 5000); -- GitLab