summaryrefslogtreecommitdiff
path: root/u/trace/trace.ts
diff options
context:
space:
mode:
Diffstat (limited to 'u/trace/trace.ts')
-rw-r--r--u/trace/trace.ts14
1 files changed, 8 insertions, 6 deletions
diff --git a/u/trace/trace.ts b/u/trace/trace.ts
index acc116f..e316ca8 100644
--- a/u/trace/trace.ts
+++ b/u/trace/trace.ts
@@ -10,7 +10,7 @@ import {
type MetricsTraceSupplier,
type MetricValue,
TraceableImpl,
-} from '@emprespresso/pengueno';
+} from './index.js';
export class LogTraceable<T> extends TraceableImpl<T, LogTraceSupplier> {
public static LogTrace = new LogTrace();
@@ -19,8 +19,10 @@ export class LogTraceable<T> extends TraceableImpl<T, LogTraceSupplier> {
}
}
-const getEmbeddedMetricConsumer = (logTrace: ITrace<LogTraceSupplier>) => (metrics: Array<MetricValue>) =>
- logTrace.addTrace(LogLevel.SYS).trace(`Metrics = <metrics>${JSON.stringify(metrics)}</metrics>`);
+const getEmbeddedMetricConsumer = (logTrace: ITrace<LogTraceSupplier>) => (metrics: Array<MetricValue>) => {
+ if (metrics.length === 0) return;
+ logTrace.traceScope(LogLevel.SYS).trace(`Metrics = <metrics>${JSON.stringify(metrics)}</metrics>`);
+};
export class EmbeddedMetricsTraceable<T> extends TraceableImpl<T, MetricsTraceSupplier> {
public static MetricsTrace = new MetricsTrace(getEmbeddedMetricConsumer(LogTraceable.LogTrace));
@@ -37,12 +39,12 @@ export class LogMetricTrace implements ITrace<LogMetricTraceSupplier> {
private metricsTrace: ITrace<MetricsTraceSupplier>,
) {}
- public addTrace(trace: LogTraceSupplier | MetricsTraceSupplier): LogMetricTrace {
+ public traceScope(trace: LogTraceSupplier | MetricsTraceSupplier): LogMetricTrace {
if (isMetricsTraceSupplier(trace)) {
- this.metricsTrace = this.metricsTrace.addTrace(trace);
+ this.metricsTrace = this.metricsTrace.traceScope(trace);
return this;
}
- this.logTrace = this.logTrace.addTrace(trace);
+ this.logTrace = this.logTrace.traceScope(trace);
return this;
}