Accedere e tracciare solo con Azure Application Insights (anziché combinare NLog e AppInsights) in Asp MVC [closed]

6

Stavo passando per diversi post del blog su StackOverflow e programmatori e sono ancora un po 'confuso. È possibile installare NLog (o qualche altra lib di registrazione) e avviare la registrazione abbastanza velocemente e quindi è possibile installare le informazioni sulle applicazioni e un adattatore per raccogliere effettivamente i dati in Azure Application Insights.

È davvero necessario utilizzare due approcci (NLog combinato con AppInsights)? Cosa succede se usiamo semplicemente il TelemetryClient di AppInsight per accedere e tracciare. Se voglio andare alla moda, posso avvolgerlo con un'interfaccia, così posso facilmente cambiarlo in seguito. Posso anche avvolgerlo in Common.Logging per essere ancora più elaborato. (Sarei davvero fantasioso lì.)

Ci sono dei vantaggi nell'utilizzo di NLog e Application Insights? Pensi che l'accesso a un database "locale" e ad Azure sia superfluo? Ci sono degli svantaggi nell'utilizzare solo Application Insights sia per la registrazione che per la traccia (latenza, troppo costosa per chiamare sia il tempo che il denaro)?

Esempio di AppInsight : immagina di avere un contenitore DI da qualche parte:

ILog.cs

public interface ILog
{
    void Exception(Exception ex);
}

TelemetryClientLog.cs

public class TelemetryClientLog : ILog
{
    private readonly TelemetryClient telemetryClient = null;

    public TelemetryClientLog(TelemetryClient telemetryClient)
    {
        this.telemetryClient = telemetryClient;
    }

    public void Exception(Exception ex)
    {
        this.telemetryClient.TrackException(ex);
    }
}

StarWars.cs

// somewhere in a code far far away with an injected logger
try
{
    this.CallJedi();
}
catch(LightSaberException lse)
{
   // log implements ILog interface, look above
   this.log.Exception(lse);
}
    
posta Santhos 25.01.2016 - 17:49
fonte

1 risposta

-3

Avere quel ILog nella tua app è una buona idea. In questo modo puoi semplicemente creare una nuova implementazione e sostituirla. Nella tua implementazione puoi fare tutto ciò che pensi sia meglio. Spero che tu stia usando un contenitore IoC per iniettare ILog (o meglio ancora, iniettarlo nella tua pipeline senza la dipendenza di ILog ovunque). In genere, accedo solo alle cose specifiche dell'IA che voglio monitorare. Fa già un ottimo lavoro e traccia tutte le richieste anche le chiamate SQL, quasi tutto.

    
risposta data 06.10.2017 - 19:37
fonte

Leggi altre domande sui tag