Log4net in .net 6 webapi

Create a new web api project
dotnet new webapi
Add log4net
dotnet add package Microsoft.Extensions.Logging.Log4Net.AspNetCore
Add
builder.Logging.AddLog4Net();
call in your Program.cs file.
...
var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Logging.AddLog4Net(); //here

var app = builder.Build();
...
The logging level by default is set to INFO. It can be found in appsettings.json and appsettings.{ENVIRONMENT}.json

Create a new file called log4net.config and this to the content

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
    <root>
        <appender-ref ref="ConsoleAppender"/>
    </root>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%d [%t] %-5p %logger - %m%n" />
        </layout>
    </appender>
</log4net>

Add some logging in a controller


public IEnumerable<WeatherForecast> Get()
{
    _logger.LogDebug("i am here");
    return Enumerable.Range(1, 5).Select(index => new WeatherForecast
    {
        Date = DateTime.Now.AddDays(index),
        TemperatureC = Random.Shared.Next(-20, 55),
        Summary = Summaries[Random.Shared.Next(Summaries.Length)]
    })
    .ToArray();
}
You will get this
2022-03-28 15:45:29,796 [.NET ThreadPool Worker] DEBUG log4netinwebapi.Controllers.WeatherForecastController - i am here

Comments

Popular posts from this blog

Adding CKEditor 4 to Angular

Using @CurrentIteration with TFS API