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

时间:2016-05-02 06:53:10

标签: asp.net-core asp.net-core-mvc ms-extensions-logging

我正在开发一个MVC6网络应用程序,而且我是ASP.NET 5的新手。 我可以看到Logging(Microsoft.Extensions.Logging)在ASP.NET 5默认Web应用程序模板中的许多地方(例如:AccountController.cs)使用,但我无法弄清楚在哪里配置路径创建的日志文件。 以下设置位于appsettings.json文件中。

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

在此部分添加参数是否足够?如果是,参数名称是什么?如果没有,该怎么办?

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

3 个答案:

答案 0 :(得分:6)

ILogger只是一个抽象,你必须实现一个具体的记录器(log4net,serilog,...)来登录文件。

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

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

}

在configure的方法中(在这里使用serilog):

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

    // Some other code
}

Official documentation

答案 1 :(得分:3)

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

但是log4net上有一个使用ASP.NET Core的端口。链接到sources和博客post

答案 2 :(得分:0)

使用Serilog,通过一行代码将文件记录添加到ASP.NET Core应用中。

安装 Serilog.Extensions.Logging.File

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

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