Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 587bf1a

Browse files
committedDec 21, 2024
feat: moving to a LogLevel argument for DefaultLogger defaulted to warn
Signed-off-by: Kevin Long <kmlong1183@gmail.com>
1 parent 3277412 commit 587bf1a

File tree

3 files changed

+25
-13
lines changed

3 files changed

+25
-13
lines changed
 

‎packages/shared/src/hooks/logging-hook.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ import type { OpenFeatureError } from '../errors';
22
import type { BaseHook } from './hook';
33
import type { BeforeHookContext, HookContext, HookHints } from './hooks';
44
import type { FlagValue, EvaluationDetails } from '../evaluation';
5+
import type { Logger } from '../logger';
6+
import { DefaultLogger, LogLevel, SafeLogger } from '../logger';
57

6-
import { DefaultLogger, SafeLogger } from '../logger';
78

89
type LoggerPayload = Record<string, unknown>;
910

@@ -20,10 +21,11 @@ const VALUE_KEY = 'value';
2021

2122
export class LoggingHook implements BaseHook {
2223
readonly includeEvaluationContext: boolean = false;
23-
readonly logger = new SafeLogger(new DefaultLogger(true, true));
24+
readonly logger: Logger;
2425

25-
constructor(includeEvaluationContext: boolean = false) {
26+
constructor(includeEvaluationContext: boolean = false, logger?: Logger) {
2627
this.includeEvaluationContext = !!includeEvaluationContext;
28+
this.logger = logger || new SafeLogger(new DefaultLogger(LogLevel.DEBUG));
2729
}
2830

2931
before(hookContext: BeforeHookContext): void {

‎packages/shared/src/logger/default-logger.ts

+13-10
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,36 @@
11
/* eslint-disable @typescript-eslint/no-empty-function */
22

3-
import type { Logger } from './logger';
3+
import type { Logger} from './logger';
4+
import { LogLevel } from './logger';
45

56
export class DefaultLogger implements Logger {
67

7-
private readonly showInfo : boolean = false;
8-
private readonly showDebug : boolean = false;
8+
private readonly logLevel : LogLevel;
99

10-
constructor(showInfo: boolean = false, showDebug: boolean = false){
11-
this.showInfo = showInfo;
12-
this.showDebug = showDebug;
10+
constructor(logLevel: LogLevel = LogLevel.WARN){
11+
this.logLevel = logLevel;
1312
}
1413

1514
error(...args: unknown[]): void {
16-
console.error(...args);
15+
if(this.logLevel >= LogLevel.ERROR) {
16+
console.error(...args);
17+
}
1718
}
1819

1920
warn(...args: unknown[]): void {
20-
console.warn(...args);
21+
if(this.logLevel >= LogLevel.WARN) {
22+
console.warn(...args);
23+
}
2124
}
2225

2326
info(...args: unknown[]): void {
24-
if(this.showInfo) {
27+
if(this.logLevel >= LogLevel.INFO) {
2528
console.info(...args);
2629
}
2730
}
2831

2932
debug(...args: unknown[]): void {
30-
if(this.showDebug) {
33+
if(this.logLevel === LogLevel.DEBUG) {
3134
console.debug(...args);
3235
}
3336
}

‎packages/shared/src/logger/logger.ts

+7
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,10 @@ export interface ManageLogger<T> {
2020
*/
2121
setLogger(logger: Logger): T;
2222
}
23+
24+
export enum LogLevel {
25+
ERROR = 1,
26+
WARN = 2,
27+
INFO = 3,
28+
DEBUG = 4,
29+
}

0 commit comments

Comments
 (0)
Please sign in to comment.