Я использую dotnet core 2.0 для своего приложения.У меня есть serilog версии 2.8.0, Serilog.RollingFiles -> 3.3.0, Serilog.Extensions.Logging -> 3.0.1
- DefaultSettings.cs
var dict = new Dictionary<string, string>
{
{ "Logging:LogFile", "Logs/Messaging-{Date}.log" },
};
Program.cs
public static void Main(string[] args)
{
var webHost = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.ConfigureAppConfiguration((hostingContext, config) =>
{
var env = hostingContext.HostingEnvironment;
config.Add(Infrastructure.DefaultSettings.GetSettings())
.AddJsonFile("appsettings.json", true, true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", true, true)
.AddJsonFile($"appsettings.local.json", true, true)
.AddEnvironmentVariables()
.AddCommandLine(args);
})
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddConsole();
logging.AddDebug();
var serilogger = new LoggerConfiguration()
.MinimumLevel.Debug() // Default level
.Filter.ByIncludingOnly(new Extensions.Logging.Serilog.SerilogFilter(hostingContext.Configuration.GetSection("Logging")).MatchInclude)
.WriteTo.RollingFile(hostingContext.Configuration["Logging:LogFile"], fileSizeLimitBytes: 1048576)
.CreateLogger();
logging.AddSerilog(serilogger);
})
.UseStartup<Startup>()
.Build();
webHost.Run();
}
Startup.cs
public void Configure(IApplicationBuilder app,ILoggerFactory loggerFactory, IApplicationLifetime lifetime, IServiceScopeFactory serviceScope)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
var serilogger = new LoggerConfiguration()
.MinimumLevel.Information() // Default level
.Filter.ByIncludingOnly(new Extensions.Logging.Serilog.SerilogFilter(Configuration.GetSection("Logging")).MatchInclude)
.WriteTo.RollingFile(Configuration["Logging:LogFile"], fileSizeLimitBytes: 10485760, retainedFileCountLimit: null)
.CreateLogger();
loggerFactory.AddSerilog(serilogger);
var logger = loggerFactory.CreateLogger<Startup>();
logger.LogInformation($"Env: {_env.EnvironmentName}");
///Other required details
}
Appsettings.json
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Information",
"System": "Warning",
"Microsoft": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Information",
"System": "Warning",
"Microsoft": "Warning"
}
}
}
}
Но моя проблема в том,
Если я запускаю приложение, я могу видеть журналы в консоли, но я не получаю никаких журналовв файле.Путь к журналам: src / Webapi / Logs
Не могли бы вы помочь мне решить мою проблему?
Текущий файл вывода (Messaging-20190920.log)
2019-09-20 16:58:27.828 +08:00 [Warning] ::1:56358
2019-09-20 17:08:56.897 +08:00 [Warning] ::1:56544
2019-09-20 17:13:33.723 +08:00 [Warning] ::1:56654
2019-09-20 17:13:50.532 +08:00 [Warning] ::1:56664
2019-09-20 17:16:38.420 +08:00 [Warning] ::1:56739
2019-09-20 17:29:49.185 +08:00 [Warning] ::1:56894
2019-09-20 17:34:43.809 +08:00 [Warning] ::1:57056
2019-09-20 17:36:53.270 +08:00 [Warning] ::1:57056