I am trying to configure Serilog as my registrar in a multi-project solution using Asp.Net Core 2.0.1, EF 2.0.1 and MVC 6.
I created Serilog, mainly following the recommendations of this blog
Configure Serilog Post
There is a json issue in this post that I fixed and is shown here.
Appsettings.json file
{
"ApplicationConfiguration": {
"ConnectionStrings": {
"DevelopmentConnection": "Server=(localdb)\\mssqllocaldb;Database=TestingConfigurationNetCoreTwo_Development;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"ApplicationInfo": {
"VersionNumber": "1.0.0",
"Author": "Jimbo",
"ApplicationName": "CustomTemplate",
"CreatedOn": "November 20, 2017"
},
"Serilog": {
"Using": [
"Serilog.Sinks.RollingFile",
"Serilog.Sinks.Async",
"Serilog.Sinks.ApplicationInsights",
"Serilog.Sinks.Console",
"Serilog.Sinks.Seq"
],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning"
}
},
"WriteTo": [
{
"Name": "Async",
"Args": {
"configure": [
{
"Name": "RollingFile",
"Args": { "pathFormat": "Logs/log-{Date}.log" }
}
]
}
}
],
"Enrich": ["FromLogContext", "WithMachineName", "WithThreadId"],
"Properties": {
"Application": "CustomTemplate"
}
}
}
}
I have a logger configuration in the main method of Program.cs
public static int Main(string[] args)
{
var currentEnv = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{currentEnv}.json", optional: true)
.AddEnvironmentVariables()
.Build();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.WriteTo.Seq("http://localhost:5341")
.CreateLogger();
Log.Information("Logger created");
try
{
Log.Information("Starting web host");
BuildWebHost(args).Run();
return 0;
}
catch (Exception ex)
{
Log.Fatal(ex, "Web Host terminated unexpectedly");
return 1;
}
finally
{
Log.CloseAndFlush();
}
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
And in my launch method
services.AddLogging(loggingBuilder =>
loggingBuilder.AddSerilog(dispose: true));
, Serilog Logs , . , - . . . C, OneDrive ( , OneDrive), .
System.IO.FileNotFoundException HResult = 0x80070002 = 'appsettings.json' . : 'C:\Users\OneDrive\TestingConfigurationAspNetCore2\TestMvcApp\bin\Debug\netcoreapp2.0\appsettings.json'. = : Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload) Microsoft.Extensions.Configuration.FileConfigurationProvider.Load() Microsoft.Extensions.Configuration.ConfigurationRoot..ctor( IList`1) Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
, ,
.AddJsonFile("appsettings.json")
, bin appsettings.json, TestMvcApp.runtimeconfig.json.
.SetBasePath, , . appsettings.json, ? , , ( )
, , , .