2016-03-18 59 views
1

私はASP.NET 5を使用したWebアプリケーションを持っています。新しい組み込みログメカニズム(Microsoft.Extensions.Logging)に精通しています。ASP.NET 5のログを自動的に削除する方法は?

これまでは他のアプリケーションでNLogを使用していましたが、NLogは一定期間後に自動的にログファイルを削除するメカニズムを備えています。 ASP.NETの組み込みログでこの動作を再現する方法はありますか?たとえば、7日以上経過したログファイルを削除しますか?

私は、我々はまだNLogを使用することができます...

答えて

2

この他の場所にドキュメントを見つけることができませんでした。 The ASP.NET Logging repository says

コミュニティプロジェクトは、さまざまなバックエンドで使用するためのMicrosoft.Extensions.Loggingに適合します。

NLogが含まれています。ここにはNLog - provider for the NLog libraryがあり、以下は簡略化されたデモです。あなたの目的のためにそれを微調整することができます。

ディレクトリ構造

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> 
関連する問題