Customize the C# SDK logger
Customize log information from the Optimizely Feature Experimentation C# SDK for debugging experiments.
The logger captures details about your experiments, making it easier for you to debug them. You can customize where the log information is stored and choose the types of data you want to track.
To improve your experience setting up the SDK and configuring your production environment, pass in a logger for your Optimizely client. See the following code sample.
using OptimizelySDK.Logger;
public class CustomLogger : ILogger
{
private readonly LogLevel _minLogLevel;
public CustomLogger(LogLevel minLogLevel) => _minLogLevel = minLogLevel;
public void Log(LogLevel level, string message)
{
if (level < _minLogLevel) return;
switch (level)
{
case LogLevel.DEBUG:
// DEBUG log message
break;
case LogLevel.INFO:
// INFO log message
break;
case LogLevel.WARN:
// WARNING log message
break;
case LogLevel.ERROR:
// ERROR log message
break;
}
}
}
Log levels
The following list shows the log levels for the C# SDK.
- OptimizelySDK.Logger.LogLevel.ERROR – Logs events that prevent feature flags from working properly, such as an invalid data file during initialization or incorrect feature keys. These issues require user intervention to fix.
- OptimizelySDK.Logger.LogLevel.WARN – Logs events that do not prevent feature flags from working properly but may cause unexpected results, such as future API deprecation, improper logger or error handler settings, and nil values from getters.
- OptimizelySDK.Logger.LogLevel.INFO – Logs key events to illustrate the lifecycle of an API call, such as when a decision or tracking starts and succeeds.
- OptimizelySDK.Logger.LogLevel.DEBUG – Logs extra information related to errors that aid Optimizely in debugging, like when a feature flag is not running or a user is not included in a rollout.
Updated 14 days ago