@@ -15,7 +15,7 @@ namespace OpenFeature
15
15
/// <summary>
16
16
///
17
17
/// </summary>
18
- public sealed class FeatureClient : IFeatureClient
18
+ public sealed partial class FeatureClient : IFeatureClient
19
19
{
20
20
private readonly ClientMetadata _metadata ;
21
21
private readonly ConcurrentStack < Hook > _hooks = new ConcurrentStack < Hook > ( ) ;
@@ -76,7 +76,7 @@ public void SetContext(EvaluationContext context)
76
76
public FeatureClient ( string name , string version , ILogger logger = null , EvaluationContext context = null )
77
77
{
78
78
this . _metadata = new ClientMetadata ( name , version ) ;
79
- this . _logger = logger ?? new Logger < Api > ( new NullLoggerFactory ( ) ) ;
79
+ this . _logger = logger ?? NullLogger < Api > . Instance ;
80
80
this . _evaluationContext = context ?? EvaluationContext . Empty ;
81
81
}
82
82
@@ -233,15 +233,14 @@ private async Task<FlagEvaluationDetails<T>> EvaluateFlag<T>(
233
233
}
234
234
catch ( FeatureProviderException ex )
235
235
{
236
- this . _logger . LogError ( ex , "Error while evaluating flag {FlagKey}. Error {ErrorType}" , flagKey ,
237
- ex . ErrorType . GetDescription ( ) ) ;
236
+ this . FlagEvaluationErrorWithDescription ( flagKey , ex . ErrorType . GetDescription ( ) , ex ) ;
238
237
evaluation = new FlagEvaluationDetails < T > ( flagKey , defaultValue , ex . ErrorType , Reason . Error ,
239
238
string . Empty , ex . Message ) ;
240
239
await this . TriggerErrorHooks ( allHooksReversed , hookContext , ex , options ) . ConfigureAwait ( false ) ;
241
240
}
242
241
catch ( Exception ex )
243
242
{
244
- this . _logger . LogError ( ex , "Error while evaluating flag {FlagKey}" , flagKey ) ;
243
+ this . FlagEvaluationError ( flagKey , ex ) ;
245
244
var errorCode = ex is InvalidCastException ? ErrorType . TypeMismatch : ErrorType . General ;
246
245
evaluation = new FlagEvaluationDetails < T > ( flagKey , defaultValue , errorCode , Reason . Error , string . Empty ) ;
247
246
await this . TriggerErrorHooks ( allHooksReversed , hookContext , ex , options ) . ConfigureAwait ( false ) ;
@@ -270,8 +269,7 @@ private async Task<HookContext<T>> TriggerBeforeHooks<T>(IReadOnlyList<Hook> hoo
270
269
}
271
270
else
272
271
{
273
- this . _logger . LogDebug ( "Hook {HookName} returned null, nothing to merge back into context" ,
274
- hook . GetType ( ) . Name ) ;
272
+ this . HookReturnedNull ( hook . GetType ( ) . Name ) ;
275
273
}
276
274
}
277
275
@@ -298,7 +296,7 @@ private async Task TriggerErrorHooks<T>(IReadOnlyList<Hook> hooks, HookContext<T
298
296
}
299
297
catch ( Exception e )
300
298
{
301
- this . _logger . LogError ( e , "Error while executing Error hook {0}" , hook . GetType ( ) . Name ) ;
299
+ this . ErrorHookError ( hook . GetType ( ) . Name , e ) ;
302
300
}
303
301
}
304
302
}
@@ -314,9 +312,24 @@ private async Task TriggerFinallyHooks<T>(IReadOnlyList<Hook> hooks, HookContext
314
312
}
315
313
catch ( Exception e )
316
314
{
317
- this . _logger . LogError ( e , "Error while executing Finally hook {0}" , hook . GetType ( ) . Name ) ;
315
+ this . FinallyHookError ( hook . GetType ( ) . Name , e ) ;
318
316
}
319
317
}
320
318
}
319
+
320
+ [ LoggerMessage ( 100 , LogLevel . Debug , "Hook {HookName} returned null, nothing to merge back into context" ) ]
321
+ partial void HookReturnedNull ( string hookName ) ;
322
+
323
+ [ LoggerMessage ( 101 , LogLevel . Error , "Error while evaluating flag {FlagKey}" ) ]
324
+ partial void FlagEvaluationError ( string flagKey , Exception exception ) ;
325
+
326
+ [ LoggerMessage ( 102 , LogLevel . Error , "Error while evaluating flag {FlagKey}: {ErrorType}" ) ]
327
+ partial void FlagEvaluationErrorWithDescription ( string flagKey , string errorType , Exception exception ) ;
328
+
329
+ [ LoggerMessage ( 103 , LogLevel . Error , "Error while executing Error hook {HookName}" ) ]
330
+ partial void ErrorHookError ( string hookName , Exception exception ) ;
331
+
332
+ [ LoggerMessage ( 104 , LogLevel . Error , "Error while executing Finally hook {HookName}" ) ]
333
+ partial void FinallyHookError ( string hookName , Exception exception ) ;
321
334
}
322
335
}
0 commit comments