The MessageHandler runtime and engines perform their logging operations using the Microsoft.Extensions.Logging.ILogger abstraction.
This abstraction is automatically provided when hosting in the dotnet generic hosting abstration or any of the framework provided derivatives, such as the ASP.NET Core Web Host.
When hosted in the ASP.NET Core Web Host the following providers are automatically provided.
Each of these targets can be monitored within visual studio using the respective output or events windows.
These default logging targets are great for local development, but not for azure hosted deployments.
Logging to Azure Application Insights
To send the log statements towards Azure Application Insights, you need to either install the Microsoft.ApplicationInsights.AspNetCore or Microsoft.ApplicationInsights.WorkerService nuget package depending on the host, WebHost and GenericHost respectively.
When hosting in the WebHost, call
When hosting in the Generic Host, call
The default logging level set in the WebHost is
Warning, while none is set for the Generic Host. In both cases you may want to set the loglevel to information to see the output of the MessageHandler runtimes, which are usually logged at the Information log level;
builder.Logging.AddFilter<ApplicationInsightsLoggerProvider>(level => level >= LogLevel.Information);
MessageHandler is running quite a few processes, among others the outbox, the atomic and the stream processing runtimes, run on background threads in Hosted Services. Luckily the Microsoft.ApplicationInsights.AspNetCore also handles these when hosted in a web host, so there is never a need to install both packages.
For more information on how to configure Application Insights in more detail, refer to the official Microsoft documentation