Log client side su ASP.NET Core con JSNLog

di Andrea Tosato, in ASP.NET Core,

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.

Figura 1

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.

Figura 2

Questo pacchetto installa un file TypeScript, insieme al corrispondente JavaScript, all'interno della cartella mostrata nella figura in basso.

Figura 3

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>
4 pagine in totale: 1 2 3 4

Attenzione: Questo articolo contiene un allegato.

Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Top Ten Articoli

Articoli via e-mail

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

In primo piano

I più letti di oggi

In evidenza

Misc