ASP.NET 5:如何配置日志路径 Microsoft.Extensions.Logging

ASP.NET 5: How to configure the path of logs in Microsoft.Extensions.Logging

我正在开发 MVC6 网络应用程序,我是 ASP.NET 5 的新手。 我可以看到在 ASP.NET 5 默认 Web 应用程序模板中的许多地方(例如:AccountController.cs)都使用了日志记录(Microsoft.Extensions.Logging),但我不知道在哪里配置创建的日志文件的路径。 在 appsettings.json 文件中可以找到以下设置。

"Logging": {
"IncludeScopes": false,
"LogLevel": {
  "Default": "Verbose",
  "System": "Information",
  "Microsoft": "Information"
}  }

在这个部分添加一个参数就够了吗?如果是,参数名称是什么?如果没有,怎么办?

以前我使用 Log4Net 并且配置是在 logger.config 文件中完成的。

ASP.NET Core 中没有内置文件记录器。记录 Github repository

但是 ASP.NET Core 上有一个端口可以使用 log4net。 Link 到 sources and the blog post

ILogger 只是一个抽象概念,您必须实现一个具体的记录器(log4net、serilog 等)来记录文件。

public Startup(IHostingEnvironment env)
{
    // Some other code 

    Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug().WriteTo.File("YOUR FILE PATH HERE")
            .CreateLogger();

}

在配置方法中(这里使用 serilog):

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddSerilog();

    // Some other code
}

Official documentation

使用Serilog,一行代码添加文件日志到ASP.NET核心应用

安装Serilog.Extensions.Logging.File

Host.CreateDefaultBuilder(args)
            .ConfigureLogging((hostingContext, builder) =>
            {
                builder.AddFile("Logs/myapp-{Date}.txt");
            })

https://github.com/serilog/serilog-extensions-logging-file