I have a Blazor WebAssembly application created directly from template, and I have added logging procedures as described in Blazor WebAssembly Logging
I have added the line builder.Logging.SetMinimumLevel in my class Program, method Main
public class Program
{
const string serverHttpClientName = "GoodSales.ServerAccessApi";
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
IConfiguration configuration = builder.Configuration;
// JMA: Configure logging
builder.Logging.SetMinimumLevel(LogLevel.Debug);
NOTICE: I have no added specific logger, because navigator console log is enough for me.
Then, I have added logging in my razor component
@using Microsoft.AspNetCore.SignalR.Client
@using GoodSales.Services
@inject NavigationManager NavigationManager
@using Microsoft.Extensions.Logging;
@inject ILogger<NavMenu> logger;
@inject ILoggerProvider LoggerProvider
And added testing line in the initialization method
protected override async Task OnInitializedAsync()
{
logger.LogDebug("LogDebug test");
logger.LogInformation("LogInformation test");
logger.LogWarning("LogWarning test");
But, in the navigator console I only see the LogInformation and the LogWarning, but not the LogDebug.
What am I missing?
You can try to use this Nuget package In my project it logs Debug messages as well when correctly configured. It works always because using
Console.WriteLine()
See docs.NOTE: in .NET 5 Blazor Web Assembly apps (NOT in Server side) if you use standard logging it will log to Browser console automatically. However it is possible your Browser is filtering out some logs. It means if you are not enabling "Verbose/Detailed" logging probably won't see
Debug
andTrace
logs. Check your settings.In Chrome it is here:
All above mentioned works only for Blazor Web Assembly (client side) Apps. If you want to log from a Blazor Server hosted app to your Browser console, then it is only possible with 3rd party tool. Use this Nuget package which will do the "magic". It works by sending logs from your server via SignalR channel to the user's Browser and logging to the console. Since it requires somewhat complex setup recommend to follow this detailed docs.