Skip to content

Commit f4927ca

Browse files
committed
chore: controllable logger, tracer observe fix
1 parent c1e9036 commit f4927ca

File tree

4 files changed

+29
-15
lines changed

4 files changed

+29
-15
lines changed

src/env.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@ export const JUDGMENT_ENABLE_EVALUATIONS = getEnvVar(
2727
"true",
2828
);
2929
export const JUDGMENT_NO_COLOR = getEnvVar("JUDGMENT_NO_COLOR");
30+
export const JUDGMENT_LOG_LEVEL = getEnvVar("JUDGMENT_LOG_LEVEL", "warn");

src/tracer/NodeTracer.ts

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { resourceFromAttributes } from "@opentelemetry/resources";
22
import { NodeSDK, NodeSDKConfiguration } from "@opentelemetry/sdk-node";
3+
import { Logger } from "../utils/logger";
34
import { VERSION } from "../version";
45
import { OpenTelemetryKeys } from "./OpenTelemetryKeys";
56
import { Tracer, TracerInitializeOptions } from "./Tracer";
@@ -13,7 +14,7 @@ export class NodeTracer extends Tracer {
1314
private nodeSDK?: NodeSDK;
1415

1516
public async initialize(
16-
options: NodeTracerInitializeOptions = {}
17+
options: NodeTracerInitializeOptions = {},
1718
): Promise<NodeTracer> {
1819
if (this._initialized) {
1920
return this;
@@ -42,7 +43,7 @@ export class NodeTracer extends Tracer {
4243
return this;
4344
} catch (error) {
4445
throw new Error(
45-
`Failed to initialize node tracer: ${error instanceof Error ? error.message : String(error)}`
46+
`Failed to initialize node tracer: ${error instanceof Error ? error.message : String(error)}`,
4647
);
4748
}
4849
}
@@ -64,20 +65,16 @@ export class NodeTracer extends Tracer {
6465
}
6566

6667
public static createWithConfiguration(
67-
configuration: TracerConfiguration
68+
configuration: TracerConfiguration,
6869
): NodeTracer {
6970
return new NodeTracer(configuration);
7071
}
7172

72-
public async forceFlush(): Promise<void> {
73-
if (this.nodeSDK) {
74-
await this.nodeSDK.shutdown();
75-
}
76-
}
77-
7873
public async shutdown(): Promise<void> {
79-
if (this.nodeSDK) {
80-
await this.nodeSDK.shutdown();
74+
if (!this.nodeSDK) {
75+
Logger.warn("Node SDK not initialized, skipping shutdown");
76+
return;
8177
}
78+
await this.nodeSDK.shutdown();
8279
}
8380
}

src/tracer/Tracer.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ export abstract class Tracer {
5555
);
5656

5757
this._initialized = false;
58-
5958
}
6059

6160
public abstract initialize(options: TracerInitializeOptions): Promise<Tracer>;
@@ -384,13 +383,14 @@ export abstract class Tracer {
384383
OpenTelemetryKeys.AttributeKeys.JUDGMENT_OUTPUT,
385384
this.serializer(res),
386385
);
387-
span.end();
388386
return res;
389387
})
390388
.catch((err) => {
391389
span.recordException(err as Error);
392-
span.end();
393390
throw err;
391+
})
392+
.finally(() => {
393+
span.end();
394394
}) as TResult;
395395
} else {
396396
span.setAttribute(

src/utils/logger.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { JUDGMENT_LOG_LEVEL } from "../env";
2+
13
export class Logger {
24
private static readonly RESET = "\x1b[0m";
35
private static readonly RED = "\x1b[31m";
@@ -13,13 +15,27 @@ export class Logger {
1315
} as const;
1416

1517
private static initialized = false;
16-
private static currentLevel: number = Logger.Level.INFO;
18+
private static currentLevel: number = Logger.Level.WARNING;
1719
private static useColor = true;
1820

1921
private static initialize(): void {
2022
if (!Logger.initialized) {
2123
const noColor = process.env.JUDGMENT_NO_COLOR;
2224
Logger.useColor = !noColor && process.stdout.isTTY;
25+
26+
const logLevel = JUDGMENT_LOG_LEVEL.toLowerCase();
27+
if (logLevel) {
28+
const levelMap: Record<string, number> = {
29+
debug: Logger.Level.DEBUG,
30+
info: Logger.Level.INFO,
31+
warning: Logger.Level.WARNING,
32+
warn: Logger.Level.WARNING,
33+
error: Logger.Level.ERROR,
34+
critical: Logger.Level.CRITICAL,
35+
};
36+
Logger.currentLevel = levelMap[logLevel] ?? Logger.Level.WARNING;
37+
}
38+
2339
Logger.initialized = true;
2440
}
2541
}

0 commit comments

Comments
 (0)