تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة ::: EventLog
#1
كاتب الموضوع : BADRMEDIA



بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

Log Event:

ماذا تعني هذه العبارة

Log نقصد بها سجل , Event تعني حدث - إذن - Log Event تعني سجل الأحداث

وهذا المفهوم خدمة متوفرة فى أنظمة ويندوز ( XP – NT )

حيث يقوم هذا السجل بتسجيل الأحداث التى تحدث على النظام ويمكن الوصول إليها والاطلاع عليها من أداة Event Viewer الموجودة فى Administrative Tools التى بداخل Control Panel


كما تحدثنا هذا السجل يقوم بعمل Monitor للأحداث التى تحدث فى النظام وسنتحدث كيف نتعامل معه ونضيف مراقبة لتطبيق معين


}}}}
تم الشكر بواسطة:
#2
عندما تفتح نافذة Event Viewer الموجودة فى التى بداخل Control Panel

كما فى الصورة نجد هناك أشياء أساسية يتم تسجيل أحداثها


مثل


Application
Security
System



ويمكن الوصول لهم عبر هذا الكائن برمجياً






نقوم باضافة العنصر EventLog من صندوق الأداوات

ونضيف على الفورم زر أمر Button وقائمة ListBox


ندرج هذا الكود لحدث زر الأمر



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

' نقوم بتعريف متغير من نوع الفئة

Dim evlog As System.Diagnostics.EventLog()

' نجعله يحصل على الأحداث التى تحت المراقبة

evlog = System.Diagnostics.EventLog.GetEventLogs()

' نقوم بعمل حلقة تملئ ListBox باسماء سجلات الأحداث

For Each log As System.Diagnostics.EventLog In evlog

ListBox1.Items.Add(log.Log)
Next log


End Sub
}}}}
تم الشكر بواسطة:
#3
لو أردت أن تتأكد هل هناك سجل باسم معين موجود أم لا



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

Dim SourceName As String = "Application"

If EventLog.SourceExists(SourceName) Then
MessageBox.Show("Found" & SourceName)
Else
MessageBox.Show("Not Found" & SourceName)
End If

End Sub

قمت بتكوين فئة وارسلتها للتأكد من وجود سجل باسم معين من المتغير SourceName

وارسلته ليتأكد من وجود السجل Application وبالفعل سيجده

غير الكلمة بسجل غير موجود ستعود لك الرسالة بعدم وجود السجل
}}}}
تم الشكر بواسطة:
#4


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

Dim LogName As String = "BADRMEDIA"

If EventLog.Exists(LogName) Then

EventLog.Delete(LogName)

MessageBox.Show(LogName & "Deleted")
Else
MessageBox.Show("Not Found" & LogName)
End If

End Sub


فى هذا الكود نبحث عن سجل باسم معين وهو BADRMEDIA ونحذف فى حالة لو وجدناه
}}}}
تم الشكر بواسطة:
#5
تعاملنا فى الأمثلة مع سجل الأحداث وأظهرنا محتوياته وتحكمنا فى بعضاً منها

لكن حان الوقت لنقوم ببناء سجل لنا ونقوم بتسجيل احداث تطبيق خاص بنا


يلزم لذلك أن نكون سجل أحداث ونعطيه اسم وأيضاً مصدر تسجيل الأحداث


-----------------------------------------------


ضف هذا الكلاس لمشروعك


كود :
Class EventLogs
Private EvLog As EventLog

Sub New(ByVal LogSource As String, ByVal LogName As String)
If EvLog Is Nothing Then
If Not EventLog.SourceExists(LogSource) Then
EventLog.CreateEventSource(LogSource, LogName)
End If

EvLog = New EventLog(LogName)
EvLog.Source = LogSource
End If
End Sub

Public Sub LogEvent(ByVal Message As String, _
ByVal EventType As EventLogEntryType)
EvLog.WriteEntry(Message, EventType)
End Sub

End Class


نشرحه

الكلاس اسمه EventLogs


عرفنا متغير من الفئة EventLog باسم EvLog


كود :
Private EvLog As EventLog


عرفنا اجرائية ووظفتها أننا نمرر لها معاملين

الأول مصدر تسجيل السجل
الثاني اسم السجل

بحيث يتم تكوين السجل فى حالة عدم وجوده



كود :
Sub New(ByVal LogSource As String, ByVal LogName As String)
If EvLog Is Nothing Then
If Not EventLog.SourceExists(LogSource) Then
EventLog.CreateEventSource(LogSource, LogName)
End If

EvLog = New EventLog(LogName)
EvLog.Source = LogSource
End If
End Sub


الاجرائية


كود :
Public Sub LogEvent(ByVal Message As String, _
ByVal EventType As EventLogEntryType)
EvLog.WriteEntry(Message, EventType)
End Sub

المسئولة عن تسجيل الأحداث

ونرسل لها الاسم والنوع




قم فى وضع هذا الكود كمتغير عام فى أول الفورم



كود :
Private Evl As New EventLogs("From BADRMEDIA Event Log", "BADRMEDIA Application")

اكتب قى حدث زر الأمر


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

Try
Dim x As Integer = 50
Dim y As Integer = 0
Dim z As Integer = x / y

Catch ex As Exception
Evl.LogEvent(ex.Message & ControlChars.CrLf, EventLogEntryType.Error)
End Try

End Sub

هنا افتعلنا خطأ وهو القسمة على صفر

ونقوم بارساله لسجل الأحداث الخاص بنا


اذهب إلي

نافذة Event Viewer الموجودة فى داخل Control Panel


ستجد سجل انشا باسم BADRMEDIA Application

وبه الخطأ مسجل



الآن يمكن تسجيل ومراقبة برنامجك
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  معلومة ::: ListBox Blue Sky 14 2,401 14-11-16, 11:32 PM
آخر رد: فارس جراح
  معلومة مهمه فى المصفوفات ali.alfoly 2 792 30-08-13, 02:25 AM
آخر رد: ali.alfoly
  من المنتدى القديم - معلومة ::: ProgressBar ( للاخ BADRMEDIA ) المبرمج علي نوري 2 1,266 23-08-13, 11:17 PM
آخر رد: nin9e
  معلومة :: تعلم كيف تحفظ صورة في My.Settings بدون الإحتياج إلى مسارها! أسامة أحمد 3 1,016 16-12-12, 06:25 PM
آخر رد: 3amo
  من المنتدى القديم - معلومة ::: CheckBox ( للاخ BADRMEDIA ) المبرمج علي نوري 1 571 30-11-12, 05:54 PM
آخر رد: مبرمج أوتار
  معلومة :: الحل لمشكلة الخطأ في الكود For Each i As Button In Me.Controls Aly El-Haddad 2 680 10-11-12, 09:15 PM
آخر رد: Mr. DotNet
  معلومة : Partial Class RaggiTech 1 543 06-10-12, 11:03 PM
آخر رد: RaggiTech
  معلومة : TryCast مهمة RaggiTech 0 461 06-10-12, 11:02 PM
آخر رد: RaggiTech
  معلومة : XML Comments مهمة RaggiTech 1 423 06-10-12, 11:01 PM
آخر رد: RaggiTech
  معلومة - الاستثناءات ( Exceptions ) RaggiTech 0 534 06-10-12, 11:00 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم