2016-03-18 4 views
1

Ich habe eine Webanwendung mit ASP.NET 5. Ich werde gerade mit den neuen integrierten Protokollierungsmechanismen vertraut gemacht (Microsoft.Extensions.Logging).Wie werden Protokolle in ASP.NET 5 automatisch gelöscht?

Ich habe früher NLog in anderen Anwendungen verwendet, und NLog verfügt über einen Mechanismus zum automatischen Löschen von Protokolldateien nach einer bestimmten Zeit. Gibt es überhaupt eine Möglichkeit, dieses Verhalten in ASP.NET-Protokollierung zu replizieren? Löschen Sie beispielsweise Protokolldateien, die> 7 Tage alt sind?

war ich nicht in der Lage Dokumentation auf dieser an anderer Stelle zu finden ...

Antwort

2

Wir haben noch NLog verwenden können. :

Community-Projekte anpassen Microsoft.Extensions.Logging für die Verwendung mit verschiedenen Back-Ends.

Das schließt NLog ein. Hier ist die NLog - provider for the NLog library, und was folgt, ist eine vereinfachte Demo. Sie können es für Ihre Zwecke optimieren.

Verzeichnisstruktur

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> 
Verwandte Themen