C# 如何在ASP.NET 5中自动删除日志?
我有一个使用ASP.NET5的web应用程序。我刚刚开始熟悉新的内置日志机制(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。下面是一个简单的演示
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>