首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在ASP.NET 5中自动删除日志?

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

Stack Overflow用户
提问于 2016-03-18 22:28:04
回答 1查看 1.5K关注 0票数 1

我有一个使用ASP.NET 5的web应用程序,我正在熟悉新的内置日志机制(Microsoft.Extensions.Logging)。

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

我在其他地方找不到文件.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-18 23:01:34

我们仍然可以使用NLog。ASP.NET日志存储库说

社区项目调整Microsoft.Extensions.Logging以适应不同后端的使用。

其中包括NLog。下面是NLog - NLog库的提供程序,下面是一个简化的演示。你可以为了你的目的而调整它。

目录结构

代码语言:javascript
复制
MyProject
  nlog.config
  project.json
  Startup.cs

Startup.cs

代码语言:javascript
复制
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

代码语言:javascript
复制
{
    "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

代码语言:javascript
复制
<?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>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36095287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档