only create refids when used

This commit is contained in:
Bruno Windels 2021-02-24 10:14:14 +01:00
parent 86011b42e3
commit a372836a64
2 changed files with 8 additions and 3 deletions

View file

@ -48,8 +48,6 @@ export class BaseLogger {
logLevel = LogLevel.Info; logLevel = LogLevel.Info;
} }
const item = new LogItem(labelOrValues, logLevel, null, this); const item = new LogItem(labelOrValues, logLevel, null, this);
const refId = Math.round(this._platform.random() * Number.MAX_SAFE_INTEGER);
item.set("refId", refId);
this._run(item, callback, logLevel, filterCreator, false /* don't throw, nobody is awaiting */); this._run(item, callback, logLevel, filterCreator, false /* don't throw, nobody is awaiting */);
return item; return item;
} }
@ -150,4 +148,8 @@ export class BaseLogger {
_now() { _now() {
return this._platform.clock.now(); return this._platform.clock.now();
} }
_createRefId() {
return Math.round(this._platform.random() * Number.MAX_SAFE_INTEGER);
}
} }

View file

@ -39,9 +39,12 @@ export class LogItem {
this.refDetached(this.runDetached(labelOrValues, callback, logLevel, filterCreator)); this.refDetached(this.runDetached(labelOrValues, callback, logLevel, filterCreator));
} }
/** logs a reference to a different log item, obtained from runDetached. /** logs a reference to a different log item, usually obtained from runDetached.
This is useful if the referenced operation can't be awaited. */ This is useful if the referenced operation can't be awaited. */
refDetached(logItem, logLevel = null) { refDetached(logItem, logLevel = null) {
if (!logItem._values.refId) {
logItem.set("refId", this._logger._createRefId());
}
return this.log({ref: logItem._values.refId}, logLevel); return this.log({ref: logItem._values.refId}, logLevel);
} }