'Application Insight shows as a loggerProvider in Controller but not in the custom Classes

I have a particular problem. I have a small C# .Net 5.0 API, where I use AppInsight for logging the logs.

When I run it, I can see the logger has AppInsight as a provider in Controller but not in the custom classes.

Startup.CS

        services.AddScoped<IMyDataProcessor, MyDataProcessor>();
        services.AddTransientWithProxy<IMyDataProcessor, MyDataProcessor>();
        services.AddSingleton(b => b.GetService<ILoggerFactory>());

        //AppInsights
        services.AddApplicationInsightsTelemetry(Configuration);nter code here

MyController.CS

public class LoggingDemoController : ControllerBase
{

    private readonly ILogger<LoggingDemoController> _logger;
    private readonly IServiceProvider _serviceProvider;
    private readonly ILoggerFactory _loggerFactory;

    public LoggingDemoController(IServiceProvider serviceProvider)
    {
        _logger = serviceProvider.GetService<ILogger<LoggingDemoController>>();
        _loggerFactory = serviceProvider.GetService<ILoggerFactory>();
        _serviceProvider = serviceProvider;
    }
    public LoggingDemoController(IServiceProvider serviceProvider)
    {
        _logger = serviceProvider.GetService<ILogger<LoggingDemoController>>();
        _loggerFactory = serviceProvider.GetService<ILoggerFactory>();
        _serviceProvider = serviceProvider;
    }}
}

MyDataProcessor.CS

public class MyDataProcessor: IMyDataProcessor
{
    ILogger<MyDataProcessor> _logger;
    public MyDataProcessor(ILogger<MyDataProcessor> logger, IServiceProvider serviceProvider)
    {
        _logger = logger;
        var loggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>();
    }
}

In the above code, in my Controller, I can see the Logger as a loggerProvider as ApplicationInsight but MyDataProvider doesn't shows the loggerProvider with AppInsight, instead it shows, Console, Debug, EventTrace, and Event provider.

Same thing also reflecting on my Azure, the logs being inserted from the Controller, I can see in Azure ApplicationInsight but not from the custom class "MyDataProcessor".

logger in MyController logger with ApplicationInsight as a loggerProvider

logger in MyDataProcessor logger with out ApplicationInsight as a loggerProvider

Your help is appreciated, any direction would help me solving this mystery.

Thanks Rushi



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source