【发布时间】:2020-01-23 10:02:05
【问题描述】:
我想在我的 ASP.NET Core 应用程序中使用 Serilog 来记录到文件。我已经安装了包Serilog.AspNetCore(它依赖于Serilog.Settings.Configuration和Serilog.Sinks.File,所以我想我不需要任何其他包)。
我的目标是像这样在我的控制器中实现登录:
...
private ILogger _log;
public MyController(ILogger<MyController> logger)
{
_log = logger;
}
...
public ActionResult<MyResponse> Foo([FromRoute] Guid fooGuid)
{
_log.LogError("error test");
}
在我的appsettings.json 我有这样的配置:
"Serilog": {
"Using": [],
"MinimumLevel": "Information",
"WriteTo": [
{ "Name": "Console" },
{
"Name": "File",
"Args": {
"patch": "D:\\Log\\log.log"
}
}
],
"Application": "Centralized logging application"
},
"AllowedHosts": "*"
而我的Program.cs 看起来像这样:
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging((context, logging) =>
{
logging.ClearProviders();
logging.AddSerilog().AddConfiguration(context.Configuration);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
我认为问题出在Program.cs 文件中。如何实现这种记录到文件的最简单方法是什么?谢谢。
【问题讨论】:
标签: c# asp.net asp.net-core .net-core serilog