Categories & Custom loggers in .NET

.NET

You can define log levels per category (e.g., Cat, Dog) for better control.

Using ILoggerFactory

private readonly ILogger _logger;
 
public CatService(ILoggerFactory loggerFactory)
{
    _logger = loggerFactory.CreateLogger("Cat");
}
 
public void FetchData()
{
    _logger.LogInformation("Fetching data from Cat.....");
}

Using DI with ILogger<T>

private readonly ILogger _logger;
 
public CatService(ILogger<CatService> logger)
{
    _logger = logger;
}
 
public void FetchData()
{
    _logger.LogInformation("Fetching data from Cat...");
}

ILogger<T> uses typeof(T).FullName as the category.

Configure Categories in appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning",
      "Microsoft": "Warning",
      "Cat": "Information"
    }
  }
}
  • Category names can be any descriptive string.
  • Use category-based configuration for granular logging.