Skip to content

Commit

Permalink
chore: update
Browse files Browse the repository at this point in the history
  • Loading branch information
ItsMeBrianD committed Oct 15, 2024
1 parent e94c927 commit fe7160d
Showing 1 changed file with 49 additions and 1 deletion.
50 changes: 49 additions & 1 deletion packages/lib/sdk/src/logger/EvidenceLogger.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export class EvidenceLogger {
#logger;

/** @type {EvidenceLogger.EvidenceLogLevels[keyof EvidenceLogger.EvidenceLogLevels]} */
logLevel = 3;
logLevel = 4;
constructor() {
// TODO: Add winston, pino, or a similar library (?)
this.#logger = {
Expand Down Expand Up @@ -116,4 +116,52 @@ export class EvidenceLogger {
* @param {Record<string, any>} [meta]
*/
verbose = this.#log('verbose');

/** @type {string[]} */
#measureStack = [];

/**
* @param {string} topic
* @returns
*/
measure = (topic) => {
// Start
const before = performance.now();
/** @type {Record<string, number>} */
const metrics = {};
/** @type {Record<string, any>} */
const meta = {};

this.#measureStack.push(topic);

return {
/**
* @param {string} key
* @param {number} value
*/
metric: (key, value) => {
if (typeof value !== 'number') throw new Error('Metric values must be numeric');
metrics[key] = value;
},
/**
* @param {string} key
* @param {any} value
*/
meta: (key, value) => {
meta[key] = value;
},
done: () => {
const after = performance.now();
const duration = after - before;

this.#measureStack.pop();
this.#log('debug')(`Measure: ${topic}`, {
duration,
meta,
metrics,
parents: this.#measureStack
});
}
};
};
}

0 comments on commit fe7160d

Please sign in to comment.