Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET 5中自动删除日志?_C#_Logging_Asp.net Core_Microsoft Extensions Logging - Fatal编程技术网

C# 如何在ASP.NET 5中自动删除日志?

C# 如何在ASP.NET 5中自动删除日志?,c#,logging,asp.net-core,microsoft-extensions-logging,C#,Logging,Asp.net Core,Microsoft Extensions Logging,我有一个使用ASP.NET5的web应用程序。我刚刚开始熟悉新的内置日志机制(Microsoft.Extensions.logging) 在此之前,我在其他应用程序中使用了NLog,NLog有一种机制可以在一段时间后自动删除日志文件。有没有办法在ASP.NET内置日志中复制这种行为?例如,是否删除大于7天的日志文件 我在其他地方找不到这方面的文档…我们仍然可以使用NLog: 社区项目调整Microsoft.Extensions.Logging以用于不同的后端 这包括NLog。下面是一个简单的演示

我有一个使用ASP.NET5的web应用程序。我刚刚开始熟悉新的内置日志机制(
Microsoft.Extensions.logging

在此之前,我在其他应用程序中使用了NLog,NLog有一种机制可以在一段时间后自动删除日志文件。有没有办法在ASP.NET内置日志中复制这种行为?例如,是否删除大于7天的日志文件

我在其他地方找不到这方面的文档…

我们仍然可以使用NLog:

社区项目调整Microsoft.Extensions.Logging以用于不同的后端

这包括NLog。下面是一个简单的演示。您可以根据自己的目的对其进行调整

目录结构

MyProject
  nlog.config
  project.json
  Startup.cs
Startup.cs

using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.Extensions.Logging;
using NLog.Web;
using NLog.Extensions.Logging;

public class Startup
{
    public void Configure(
        IApplicationBuilder app, 
        IHostingEnvironment env, 
        ILoggerFactory loggerFactory)
    {
        //add NLog to aspnet5
        loggerFactory.AddNLog();

        //add NLog.Web (only needed if NLog.Web.ASPNET5 is needed)
        app.AddNLogWeb();

        //configure nlog.config in your project root
        env.ConfigureNLog("./MyProject/nlog.config");

        // we can also do this from a controller
        // if we inject ILoggerFactory
        var logger = loggerFactory.CreateLogger("NLog Demo"); 
        logger.LogInformation("Hello from NLog");
    }    
}
project.json

{
    "dependencies": {
        "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
        "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
        "NLog.Extensions.Logging": "1.0.0-rc1-final-2016-02-06",
        "NLog.Web.ASPNET5": "4.2.1"
    },
    "frameworks": {
        "dnx451": {}
    },
    "commands": {
        "web": "Microsoft.AspNet.Server.Kestrel"
    }
}
nlog.config

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogLevel="Warn"
      archiveEvery="Minute"
      archiveNumbering="Rolling"
      maxArchiveFiles="1">

  <extensions>
    <add assembly="NLog.Web.ASPNET5"/>
  </extensions>

  <targets>
    <target xsi:type="File" name="demo-file" 
         fileName="c:\temp\demo-file-${shortdate}.txt" 
         layout="${message}" />
  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="demo-file" />
  </rules>
</nlog>