diff --git a/src/logging/Logger.ts b/src/logging/Logger.ts index 37a3326c..d3aa1d6d 100644 --- a/src/logging/Logger.ts +++ b/src/logging/Logger.ts @@ -30,10 +30,11 @@ export class Logger implements ILogger { this._platform = platform; } - log(labelOrValues: LabelOrValues, logLevel: LogLevel = LogLevel.Info): void { + log(labelOrValues: LabelOrValues, logLevel: LogLevel = LogLevel.Info): ILogItem { const item = new LogItem(labelOrValues, logLevel, this); item.end = item.start; this._persistItem(item, undefined, false); + return item; } /** Prefer `run()` or `log()` above this method; only use it if you have a long-running operation diff --git a/src/logging/types.ts b/src/logging/types.ts index 0ed3b0dc..0f4f6150 100644 --- a/src/logging/types.ts +++ b/src/logging/types.ts @@ -68,7 +68,7 @@ export interface ILogItemCreator { */ export interface ILogger { - log(labelOrValues: LabelOrValues, logLevel?: LogLevel): void; + log(labelOrValues: LabelOrValues, logLevel?: LogLevel): ILogItem; child(labelOrValues: LabelOrValues, logLevel?: LogLevel, filterCreator?: FilterCreator): ILogItem; wrapOrRun(item: ILogItem | undefined, labelOrValues: LabelOrValues, callback: LogCallback, logLevel?: LogLevel, filterCreator?: FilterCreator): T; runDetached(labelOrValues: LabelOrValues, callback: LogCallback, logLevel?: LogLevel, filterCreator?: FilterCreator): ILogItem; diff --git a/src/matrix/calls/group/GroupCall.ts b/src/matrix/calls/group/GroupCall.ts index c90c7d2c..a8b6605f 100644 --- a/src/matrix/calls/group/GroupCall.ts +++ b/src/matrix/calls/group/GroupCall.ts @@ -104,14 +104,17 @@ export class GroupCall extends EventEmitter<{change: never}> { confId: this.id, emitUpdate: member => { const memberKey = getMemberKey(member.userId, member.deviceId); - // only remove expired members from the call if we don't have a peer conn with them + // only remove expired members to whom we're not already connected if (member.isExpired && !member.isConnected) { + const logItem = this.options.logger.log({ + l: "removing expired member from call", + memberKey, + callId: this.id + }) + member.logItem?.refDetached(logItem); member.dispose(); this._members.remove(memberKey); } else { - if (member.isExpired && member.isConnected) { - console.trace("was about to kick a connected but expired member"); - } this._members.update(memberKey, member); } },