Skip to content

Instantly share code, notes, and snippets.

@aruss
Last active September 27, 2017 09:51
Show Gist options
  • Save aruss/ae525a24077ee77b55727aeae8c2ca9b to your computer and use it in GitHub Desktop.
Save aruss/ae525a24077ee77b55727aeae8c2ca9b to your computer and use it in GitHub Desktop.
.NET Core with Serilog
{
"Serilog": {
"Using": [ "Serilog.Sinks.Console" ],
"MinimumLevel": {
"Default": "Verbose"
},
"WriteTo": [
{ "Name": "Console" }
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ]
}
}
namespace SerilogTest
{
using System;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
public class Program
{
public static void Main(string[] args)
{
ServiceProvider services = ServiceProviderBuilder.Build();
ILogger<Program> logger = services.GetService<ILogger<Program>>();
logger.LogTrace("0 LogTrace");
logger.LogDebug("1 LogDebug");
logger.LogInformation("2 LogInformation");
logger.LogWarning("3 LogWarning");
logger.LogError("4 LogError");
logger.LogCritical("5 LogCritical");
Console.WriteLine("\nPress enter to exit");
Console.Read();
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<ApplicationIcon />
<OutputType>Exe</OutputType>
<StartupObject />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.0.0" />
<PackageReference Include="Serilog" Version="2.5.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="2.0.2" />
<PackageReference Include="Serilog.Settings.Configuration" Version="2.4.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.0" />
</ItemGroup>
<ItemGroup>
<None Update="config.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
namespace SerilogTest
{
using System.IO;
using System.Reflection;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Serilog;
using Serilog.Core;
public class ServiceProviderBuilder
{
public static ServiceProvider Build()
{
string location = Path.GetDirectoryName(
Assembly.GetEntryAssembly().Location);
IConfigurationRoot config = new ConfigurationBuilder()
.SetBasePath(location)
.AddJsonFile("config.json", false, false)
.Build();
ServiceProvider serviceProvider = new ServiceCollection()
.AddLogging(builder =>
{
IConfigurationSection serilogOptions =
config.GetSection("Serilog");
Logger logger = new LoggerConfiguration()
.ReadFrom.ConfigurationSection(serilogOptions)
.CreateLogger();
builder.AddSerilog(logger, true);
})
.BuildServiceProvider();
return serviceProvider;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment