Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Εγγραφή στο Event Log

Îåêßíçóå áðü ôï ìÝëïò imanos. Τελευταία δημοσίευση από το μέλος imanos στις 31-01-2006, 14:49. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  31-01-2006, 12:11 9067

    Εγγραφή στο Event Log

    Ανοίγουμε άνα project με την ονομασία myEventLog

    'Δημιουργούμε ένα Interface όπως παρακάτω

    Imports System.Diagnostics

    Interface IEventToLog

    Sub WriteToEventLog(ByVal strMsg As String, ByVal eLogType As EventLogEntryType)

    End Interface

    'Κατόπιν δημιουργούμε την κλάση που θά κάνει την καταγραφή του συμβάντος

    'Κλάση

    Imports System.Diagnostics

    Imports System

    Public Class LogEvent

    Implements myEventLog.IEventToLog

    'Σταθερές

    Const EVENT_LOG As String = "Application"

    Const DEFAULT_SOURCE As String = "Η εφαρμογή μου"

    'Μεταβλητές class-level

    Dim mSource As String = DEFAULT_SOURCE

    'Constructor

    'default constructor

    Public Sub New()

    End Sub

    'Ο constructor που επιτρέπει στον client να καθορίσει ένα event source

    Public Sub New(ByVal Source As String)

    mSource = Source

    End Sub

    ' Methods

    Public Sub WriteToEventLog(ByVal Info As String, ByVal LogType As EventLogEntryType) Implements IEventToLog.WriteToEventLog

    Try

    'Δημιουργία source στο EventLog εάν δέν υπάρχει ήδη

    If Not (EventLog.SourceExists(mSource)) Then

    EventLog.CreateEventSource(mSource, EVENT_LOG)

    End If

    'Δημιουργία ένος νέου EventLog Αντικειμένου

    Dim Log As EventLog = New EventLog()

    Log.Source = mSource

    Log.WriteEntry(Info, LogType)

    Catch ex As Exception

    Throw ex

    End Try

    End Sub

    End Class

    'Δημιουργούμε μία φόρμα Form1 και τοποθετούμε ένα Button

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim m As New myEventLog.LogEvent("TESTLOG")

    m.WriteToEventLog("this is a test", EventLogEntryType.Information)

    End Sub


    Ιωάννης Μανουσάκης
  •  31-01-2006, 14:19 9078 σε απάντηση της 9067

    Απ: Εγγραφή στο Event Log

    Θέλει λίγη προσοχή αυτό το σημείο:

             'Δημιουργία ένος νέου EventLog Αντικειμένου
             Dim Log As EventLog = New EventLog()
             Log.Source = mSource
             Log.WriteEntry(Info, LogType)
          Catch ex As Exception
             Throw ex
          End Try
       End Sub
    End Class

    Όταν κάνουμε rethrow ένα exception, τότε ή φτιάχνουμε ένα νέο exception object μέσα στο οποίο (στο InnerException του) βάζουμε το exception που έχουμε ή απλά κάνουμε Throw. Χωρίς να περάσουμε ως παράμετρο το ex object. Η διαφορά βρίσκεται στο ότι αν βάλουμε το ex τότε κάνουμε ένα νέο exception και χάνουμε το CallStack από το exception που πιάσαμε προηγουμένως. Τέλος, αν δεν πρόκειται να κάνουμε τίποτα με το exception όταν το πιάσουμε (πχ log το error κάπου) τότε δεν υπάρχει λόγος να κάνουμε Try/Catch αφού γλυτώνουμε το overhead απλά αφήνωντας το exception θα πάρει τον δρόμο προς τα πάνω...


    Vir prudens non contra ventum mingit
  •  31-01-2006, 14:49 9080 σε απάντηση της 9067

    Απ: Εγγραφή στο Event Log

    Απλά δέν έβαλα σχόλιο στο exeption ότι πρέπει να γίνεται HANDLE από τον Client γι'αυτο το λόγο το κάνω Throw.
    Ιωάννης Μανουσάκης
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems