Class : suivre l'activité de son site internet

Contenu du snippet

Voila une classe très simple mais très pratique ! Vous l'ajoutez a votre site Internet (ou dans votre framework si vous en avez un) et vous "loguez" les fonctions importantes de votre site comme les inscriptions à la newsletter, les commandes, les messages des internautes, mais aussi et surtout les arrêts de l'application, les erreurs du site, ...
dans les annotations, vous avez un exemple pour loguer les erreurs et les traces de votre site.

CREATE TABLE [dbo].[AA_Events] (
[EVT_ID] [int] IDENTITY (1, 1) NOT NULL ,
[EVT_TITLE] [text] COLLATE French_CI_AS NOT NULL ,
[EVT_DATE] [datetime] NOT NULL ,
[EVT_PRIO] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

Source / Exemple :


Imports System.Data.SqlClient
Imports System.Configuration

Namespace IO

    Public Class Logs

        Public Shared Sub AddEvent(ByVal titleEvent As String, Optional ByVal Priorite As Integer = 3)
            Dim conn As New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
            Dim com As New SqlCommand("INSERT INTO AA_Events (EVT_TITLE,EVT_PRIO) VALUES ('" & Replace(titleEvent, "'", "''") & "'," & Priorite & ")", conn)
            Try
                conn.Open()
                com.ExecuteNonQuery()
            Catch ex As Exception

            Finally
                com = Nothing
                conn.Close()
                conn = Nothing
            End Try
        End Sub

        Public Shared Function GetEventsDay() As DataTable
            Dim conn As New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
            Dim DataAdap As SqlDataAdapter
            Dim latable As New DataTable
            Try
                conn.Open()
                DataAdap = New SqlDataAdapter("SELECT * FROM AA_Events WHERE dbo.trunc(EVT_DATE)=dbo.trunc(getdate()) ORDER BY EVT_DATE DESC", conn)
                DataAdap.Fill(latable)
            Catch ex As Exception

            Finally
                DataAdap.Dispose()
                DataAdap = Nothing
                conn.Close()
                conn = Nothing
            End Try
            Return latable
        End Function

        Public Shared Function GetEvents() As DataTable
            Dim conn As New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
            Dim DataAdap As SqlDataAdapter
            Dim latable As New DataTable
            Try
                conn.Open()
                DataAdap = New SqlDataAdapter("SELECT * FROM AA_Events ORDER BY EVT_DATE DESC", conn)
                DataAdap.Fill(latable)
            Catch ex As Exception

            Finally
                DataAdap.Dispose()
                DataAdap = Nothing
                conn.Close()
                conn = Nothing
            End Try
            Return latable
        End Function

        Public Shared Sub DelAllEvents()
            Dim conn As New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
            Dim com As New SqlCommand("DELETE FROM AA_Events", conn)
            Try
                conn.Open()
                com.ExecuteNonQuery()
            Catch ex As Exception

            Finally
                com = Nothing
                conn.Close()
                conn = Nothing
            End Try
        End Sub

        Public Shared Sub DelEventsPRIO(ByVal Priorite As Integer)
            Dim conn As New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
            Dim com As New SqlCommand("DELETE FROM AA_Events WHERE EVT_PRIO=" & Priorite.ToString, conn)
            Try
                conn.Open()
                com.ExecuteNonQuery()
            Catch ex As Exception

            Finally
                com = Nothing
                conn.Close()
                conn = Nothing
            End Try
        End Sub

        Public Shared Function GetEventsByPrio(ByVal Priorite As Integer) As DataTable
            Dim conn As New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
            Dim DataAdap As SqlDataAdapter
            Dim latable As New DataTable
            Try
                conn.Open()
                DataAdap = New SqlDataAdapter("SELECT * FROM AA_Events WHERE EVT_PRIO=" & Priorite.ToString & " ORDER BY EVT_DATE DESC", conn)
                DataAdap.Fill(latable)
            Catch ex As Exception

            Finally
                DataAdap.Dispose()
                DataAdap = Nothing
                conn.Close()
                conn = Nothing
            End Try
            Return latable
        End Function

    End Class

End Namespace

Conclusion :


Par exemple, dans le global.asax.vb, ajoutez dans :

<b>Application_Start :</b>
IO.Logs.AddEvent("Arrêt de l'application", 2)

<b>Application_Error :</b>
Dim sBody As String = "Erreur : " + Server.GetLastError().InnerException.Message + vbCrLf + "Page : " + Request.ServerVariables("SCRIPT_NAME") + vbCrLf + "QUERY_STRING : " + Request.ServerVariables("QUERY_STRING") + vbCrLf + "Référent : " + Request.ServerVariables("HTTP_REFERER") + vbCrLf + "Navigateur : " + Request.UserAgent.ToString + vbCrLf + "Paramètre : " + Request.ServerVariables("HTTP_URL") + vbCrLf + vbCrLf + "Stack : " + Environment.StackTrace
IO.Logs.AddEvent(Replace(sBody, vbCrLf, "<br>"), 1)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.