File tree Expand file tree Collapse file tree 3 files changed +25
-13
lines changed Expand file tree Collapse file tree 3 files changed +25
-13
lines changed Original file line number Diff line number Diff line change @@ -2,8 +2,9 @@ import type { OpenFeatureError } from '../errors';
22import type { BaseHook } from './hook' ;
33import type { BeforeHookContext , HookContext , HookHints } from './hooks' ;
44import 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
89type LoggerPayload = Record < string , unknown > ;
910
@@ -20,10 +21,11 @@ const VALUE_KEY = 'value';
2021
2122export 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 {
Original file line number Diff line number Diff line change 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
56export 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 }
Original file line number Diff line number Diff 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+ }
You can’t perform that action at this time.
0 commit comments