
Un sistema informatico solido deve avere come requisito uno strumento che permetta di registrare le operazioni dell'utente e del sistema in generale. Più le informazioni sono accurate e analizzabili e meglio il sistema potrà essere corretto in caso di errore o di deriva. Dopo una segnalazione di errore da parte del cliente o degli utenti, i dati presenti a sistema e il log, sono infatti le prime risorse cha abbiamo per diagnosticare il problema. Si tratta di informazioni preziose, tramite le quali possiamo ricostruire la casistica sui nostri sistemi e investigarne le cause.
Per far questo, è necessario verificare tutte le operazioni che l'utente ha eseguito prima dell'anomalia riscontrata. In ambito web, il problema più evidente è tracciare le informazioni lato client, ossia tutto ciò che l'utente esegue sul proprio browser. In passato abbiamo accennato a come ASP.NET Core fornisca un supporto out-of-the-box al log server side, ma ciò che accade sul browser oggi ha una complessità tale da richiedere un log specifico. In questo articolo ci occuperemo per l'appunto di questa esigenza, e mostreremo come soddisfarla grazie a JSNLog.
Introduzione a JSNLog
JSNLog è una libreria open source che può essere scaricata dalla pagina ufficiale o installata tramite NuGet. Essa ci consente di tracciare informazioni di log all'interno del codice JavaScript della pagina. Questi dati verranno successivamente inviati al server come richiesta AJAX, la quale verrà intercettata da un middleware OWIN specifico che si preoccupererà di memorizzare questi eventi in uno storage permanente. La figura in basso illustra il funzionamento di questi componenti.
Per la scrittura dei dati, il middleware di JSNLog si appoggia a un framework di logging server side, e fornisce il supporto alle più utilizzate librerie tra le quali: Elmah, Log4Net, NLog, Serilog e Common.Logging. Lo strumento può essere utilizzato su progetti web con infrastruttura ASP.NET e in particolare: WebForm, MVC, WebApi, e ASP.NET Core. Supportate anche le chiamate CORS.
Impostazione del progetto
Prima entrare nel dettaglio, descriviamo gli step per avere una applicazione ASP .NET Core MVC pronta per loggare client-side. Creiamo un progetto da Visual Studio 2017 di tipo ASP .NET Core e installiamo, tramite NuGet, il pacchetto richiesto per il progetto: JSNLog.AspNetCore.
Per abilitare gli script da utilizzare nelle pagine Razor dovremmo aggiungere i file JavaScript che reperiamo tramite Bower. Il pacchetto da installare si chiama jsnlog.
Questo pacchetto installa un file TypeScript, insieme al corrispondente JavaScript, all'interno della cartella mostrata nella figura in basso.
Per poterlo poi utilizzare, il passo successivo è quello di referenziarlo nella sezione head della view _Layout.cshtml:
<script src="~/lib/jsnlog.js/jsnlog.min.js"></script>
Attenzione: Questo articolo contiene un allegato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Validazione automatica dei parametri in Web API con ASP.NET Core 2.1
Utilizzare .NET Core e IoC nelle Azure Function
Creare un servizio in Angular 6
Classificazione delle immagini con Azure Custom Vision
Verificare lo stato di funzionamento dell'applicazione con ASP.NET Core 2.2
Aggiungere associazioni a file con la Universal Windows Platform
Autorizzazione basata su policy in ASP.NET Core
Gestire l'upload dei file in un controller Web API di ASP.NET Core 2.1
Estendere il binding sui bottoni nella Universal Windows Platform
.@_geniodelmale tra poco su #serverless apps with #azurefunctions v2 and #netcore a #netconfit: http://aspit.co/netconf-18
Impersonare un utente fittizio per un'applicazione ASP.NET Core