File tree 3 files changed +25
-13
lines changed
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';
2
2
import type { BaseHook } from './hook' ;
3
3
import type { BeforeHookContext , HookContext , HookHints } from './hooks' ;
4
4
import type { FlagValue , EvaluationDetails } from '../evaluation' ;
5
+ import type { Logger } from '../logger' ;
6
+ import { DefaultLogger , LogLevel , SafeLogger } from '../logger' ;
5
7
6
- import { DefaultLogger , SafeLogger } from '../logger' ;
7
8
8
9
type LoggerPayload = Record < string , unknown > ;
9
10
@@ -20,10 +21,11 @@ const VALUE_KEY = 'value';
20
21
21
22
export class LoggingHook implements BaseHook {
22
23
readonly includeEvaluationContext : boolean = false ;
23
- readonly logger = new SafeLogger ( new DefaultLogger ( true , true ) ) ;
24
+ readonly logger : Logger ;
24
25
25
- constructor ( includeEvaluationContext : boolean = false ) {
26
+ constructor ( includeEvaluationContext : boolean = false , logger ?: Logger ) {
26
27
this . includeEvaluationContext = ! ! includeEvaluationContext ;
28
+ this . logger = logger || new SafeLogger ( new DefaultLogger ( LogLevel . DEBUG ) ) ;
27
29
}
28
30
29
31
before ( hookContext : BeforeHookContext ) : void {
Original file line number Diff line number Diff line change 1
1
/* eslint-disable @typescript-eslint/no-empty-function */
2
2
3
- import type { Logger } from './logger' ;
3
+ import type { Logger } from './logger' ;
4
+ import { LogLevel } from './logger' ;
4
5
5
6
export class DefaultLogger implements Logger {
6
7
7
- private readonly showInfo : boolean = false ;
8
- private readonly showDebug : boolean = false ;
8
+ private readonly logLevel : LogLevel ;
9
9
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 ;
13
12
}
14
13
15
14
error ( ...args : unknown [ ] ) : void {
16
- console . error ( ...args ) ;
15
+ if ( this . logLevel >= LogLevel . ERROR ) {
16
+ console . error ( ...args ) ;
17
+ }
17
18
}
18
19
19
20
warn ( ...args : unknown [ ] ) : void {
20
- console . warn ( ...args ) ;
21
+ if ( this . logLevel >= LogLevel . WARN ) {
22
+ console . warn ( ...args ) ;
23
+ }
21
24
}
22
25
23
26
info ( ...args : unknown [ ] ) : void {
24
- if ( this . showInfo ) {
27
+ if ( this . logLevel >= LogLevel . INFO ) {
25
28
console . info ( ...args ) ;
26
29
}
27
30
}
28
31
29
32
debug ( ...args : unknown [ ] ) : void {
30
- if ( this . showDebug ) {
33
+ if ( this . logLevel === LogLevel . DEBUG ) {
31
34
console . debug ( ...args ) ;
32
35
}
33
36
}
Original file line number Diff line number Diff line change @@ -20,3 +20,10 @@ export interface ManageLogger<T> {
20
20
*/
21
21
setLogger ( logger : Logger ) : T ;
22
22
}
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