summaryrefslogtreecommitdiff
path: root/u/trace/log/trace.ts
diff options
context:
space:
mode:
Diffstat (limited to 'u/trace/log/trace.ts')
-rw-r--r--u/trace/log/trace.ts60
1 files changed, 0 insertions, 60 deletions
diff --git a/u/trace/log/trace.ts b/u/trace/log/trace.ts
deleted file mode 100644
index 3f9f1b2..0000000
--- a/u/trace/log/trace.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-import { isDebug, ITrace, ITraceWith, memoize, Supplier } from '@emprespresso/pengueno';
-import { ILogger, isLogLevel, LogLevel, logLevelOrder, PrettyJsonConsoleLogger } from './index.js';
-
-export type LogTraceSupplier = ITraceWith<Supplier<string>> | ITraceWith<Error>;
-
-export class LogTrace implements ITrace<LogTraceSupplier> {
- constructor(
- private readonly logger: ILogger = new PrettyJsonConsoleLogger(),
- private readonly traces: Array<LogTraceSupplier> = [defaultTrace],
- private readonly defaultLevel: LogLevel = LogLevel.INFO,
- private readonly allowedLevels: Supplier<Set<LogLevel>> = defaultAllowedLevelsSupplier,
- ) {}
-
- public traceScope(trace: LogTraceSupplier): ITrace<LogTraceSupplier> {
- return new LogTrace(this.logger, this.traces.concat(trace), this.defaultLevel, this.allowedLevels);
- }
-
- public trace(trace: LogTraceSupplier) {
- const { traces, level: _level } = this.foldTraces(this.traces.concat(trace));
- if (!this.allowedLevels().has(_level)) return;
-
- const level = _level === LogLevel.UNKNOWN ? this.defaultLevel : _level;
- this.logger.log(level, ...traces);
- }
-
- private foldTraces(_traces: Array<LogTraceSupplier>) {
- const _logTraces = _traces.map((trace) => (typeof trace === 'function' ? trace() : trace));
- const _level = _logTraces
- .filter((trace) => isLogLevel(trace))
- .reduce((acc, level) => Math.max(logLevelOrder.indexOf(level), acc), -1);
- const level = logLevelOrder[_level] ?? LogLevel.UNKNOWN;
-
- const traces = _logTraces
- .filter((trace) => !isLogLevel(trace))
- .map((trace) => {
- if (typeof trace === 'object') {
- return `TracedException.Name = ${trace.name}, TracedException.Message = ${trace.message}, TracedException.Stack = ${trace.stack}`;
- }
- return trace;
- });
- return {
- level,
- traces,
- };
- }
-}
-
-const defaultTrace = () => `TimeStamp = ${new Date().toISOString()}`;
-const defaultAllowedLevels = memoize(
- (isDebug: boolean) =>
- new Set([
- LogLevel.UNKNOWN,
- ...(isDebug ? [LogLevel.DEBUG] : []),
- LogLevel.INFO,
- LogLevel.WARN,
- LogLevel.ERROR,
- LogLevel.SYS,
- ]),
-);
-const defaultAllowedLevelsSupplier = () => defaultAllowedLevels(isDebug());