Reputation: 2148
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?
Upvotes: 6
Views: 1662
Reputation: 6658
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.
using Blazor.WebAssembly.Logging.Console;
...
builder.Logging.AddBrowserConsole()
.SetMinimumLevel(LogLevel.Debug) //Setting LogLevel is optional
.AddFilter("Microsoft", LogLevel.Information); //System logs can be filtered.
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
and Trace
logs. Check your settings.
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.
Upvotes: 7