I am trying to log information of my ASP.NET Core App and I cannot find a way to display the loogs in Azure Log Stream. The application successfully logs when I debug in Visual Studio but I do not see anything when I publish to Azure.
This is how my App Service Logs looks like: App Service Logs
I have tried to log using different methods that I have found in Microsoft documentation and none has worked.
[HttpGet]
public string Index()
{
Trace.TraceInformation("You are in the face recognition controller. Trace");
_logger.LogInformation("You are in the face recognition controller. Logger");
return "You are in the face recognition controller";
}
Controller constructor:
private readonly ILogger _logger;
public FaceRecognitionController(ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreateLogger<FaceRecognitionController>();
}
Configure method:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
loggerFactory.CreateLogger("console");
loggerFactory.CreateLogger("debug");
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
Does anyone know what I can do?
Log Stream screenshot: enter image description here
For .NET core 3.1, please follow the steps below:
1.Install nuget packagae Microsoft.Extensions.Logging.AzureAppServices, Version 3.1.2 and Microsoft.Extensions.Logging.Console, version 3.1.2 for your project.
2.In Startup.cs -> ConfigureServices method, add the following code:
public void ConfigureServices(IServiceCollection services)
{
//other code
//add the following code
services.AddLogging(loggingBuilder =>
{
loggingBuilder.AddConsole();
loggingBuilder.AddDebug();
loggingBuilder.AddAzureWebAppDiagnostics();
});
}
then in the controller class, code looks like below:
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("**********first: hello, this is a test message!!!");
_logger.LogInformation("**********second: hello, this is a test message!!!");
return View();
}
3.Publish it to azure, and then configure "App Service Logs" as mentioned in your post.
4.Nav to "Log stream" in azure portal, then visit the web site, you can see the logs:
Note: You should always use ILogger in asp.net core for logging, Trace.TraceInformation may not work for it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With