Skip to content

Instantly share code, notes, and snippets.

@Calabonga
Last active November 24, 2022 02:37
Show Gist options
  • Save Calabonga/31a197429cf91b55e21746e74bd52ce7 to your computer and use it in GitHub Desktop.
Save Calabonga/31a197429cf91b55e21746e74bd52ce7 to your computer and use it in GitHub Desktop.
Logger and configuration for Console Application
/* required nugets
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="7.0.0" />
<PackageReference Include="Serilog.AspNetCore" Version="6.0.1" />
</ItemGroup>
*/
public class AppSettings
{
public string? Name { get;set; }
}
// configuration from appSettings.json
var configuration = new ConfigurationBuilder()
.AddJsonFile("appSettings.json", optional: true, reloadOnChange: true)
.Build();
// logger from Serilog
var logger = new LoggerConfiguration().MinimumLevel.Verbose().WriteTo.Console().CreateLogger();
// services
var services = new ServiceCollection();
services.AddLogging(x => x.AddSerilog(logger));
services.Configure<AppSettings>(x => { configuration.GetSection(nameof(AppSettings)).Bind(x); });
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment