تقييم الموضوع :
- 0 أصوات - بمعدل 0
- 1
- 2
- 3
- 4
- 5
معلومة ::: EventLog
|
المشاركات : 2,523
المواضيع 707
الإنتساب : Sep 2012
السمعة :
48
الشكر: 91
تم شكره 1103 مرات في 296 مشاركات
كاتب الموضوع : BADRMEDIA
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
Log Event:
ماذا تعني هذه العبارة
Log نقصد بها سجل , Event تعني حدث - إذن - Log Event تعني سجل الأحداث
وهذا المفهوم خدمة متوفرة فى أنظمة ويندوز ( XP – NT )
حيث يقوم هذا السجل بتسجيل الأحداث التى تحدث على النظام ويمكن الوصول إليها والاطلاع عليها من أداة Event Viewer الموجودة فى Administrative Tools التى بداخل Control Panel
كما تحدثنا هذا السجل يقوم بعمل Monitor للأحداث التى تحدث فى النظام وسنتحدث كيف نتعامل معه ونضيف مراقبة لتطبيق معين
المشاركات : 2,523
المواضيع 707
الإنتساب : Sep 2012
السمعة :
48
الشكر: 91
تم شكره 1103 مرات في 296 مشاركات
عندما تفتح نافذة 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
المشاركات : 2,523
المواضيع 707
الإنتساب : Sep 2012
السمعة :
48
الشكر: 91
تم شكره 1103 مرات في 296 مشاركات
لو أردت أن تتأكد هل هناك سجل باسم معين موجود أم لا
كود :
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 وبالفعل سيجده
غير الكلمة بسجل غير موجود ستعود لك الرسالة بعدم وجود السجل
المشاركات : 2,523
المواضيع 707
الإنتساب : Sep 2012
السمعة :
48
الشكر: 91
تم شكره 1103 مرات في 296 مشاركات
كود :
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 ونحذف فى حالة لو وجدناه
المشاركات : 2,523
المواضيع 707
الإنتساب : Sep 2012
السمعة :
48
الشكر: 91
تم شكره 1103 مرات في 296 مشاركات
تعاملنا فى الأمثلة مع سجل الأحداث وأظهرنا محتوياته وتحكمنا فى بعضاً منها
لكن حان الوقت لنقوم ببناء سجل لنا ونقوم بتسجيل احداث تطبيق خاص بنا
يلزم لذلك أن نكون سجل أحداث ونعطيه اسم وأيضاً مصدر تسجيل الأحداث
-----------------------------------------------
ضف هذا الكلاس لمشروعك
كود :
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
وبه الخطأ مسجل
الآن يمكن تسجيل ومراقبة برنامجك
|
المواضيع المحتمل أن تكون متشابهة . |
الموضوع : |
الكاتب |
الردود : |
المشاهدات : |
آخر رد |
|
معلومة :: تعلم كيف تحفظ صورة في My.Settings بدون الإحتياج إلى مسارها! |
أسامة أحمد |
4 |
6,097 |
18-07-21, 02:53 AM
آخر رد: kebboud
|
|
معلومة ::: ListBox |
Blue Sky |
14 |
22,013 |
14-11-16, 11:32 PM
آخر رد: فارس جراح
|
|
معلومة مهمه فى المصفوفات |
ali.alfoly |
2 |
3,729 |
30-08-13, 02:25 AM
آخر رد: ali.alfoly
|
|
من المنتدى القديم - معلومة ::: ProgressBar ( للاخ BADRMEDIA ) |
المبرمج علي نوري |
2 |
3,823 |
23-08-13, 11:17 PM
آخر رد: nin9e
|
|
من المنتدى القديم - معلومة ::: CheckBox ( للاخ BADRMEDIA ) |
المبرمج علي نوري |
1 |
2,917 |
30-11-12, 05:54 PM
آخر رد: مبرمج أوتار
|
|
معلومة :: الحل لمشكلة الخطأ في الكود For Each i As Button In Me.Controls |
Aly El-Haddad |
2 |
3,563 |
10-11-12, 09:15 PM
آخر رد: Mr. DotNet
|
|
معلومة : Partial Class |
RaggiTech |
1 |
2,668 |
06-10-12, 11:03 PM
آخر رد: RaggiTech
|
|
معلومة : TryCast مهمة |
RaggiTech |
0 |
2,705 |
06-10-12, 11:02 PM
آخر رد: RaggiTech
|
|
معلومة : XML Comments مهمة |
RaggiTech |
1 |
2,422 |
06-10-12, 11:01 PM
آخر رد: RaggiTech
|
|
معلومة - الاستثناءات ( Exceptions ) |
RaggiTech |
0 |
2,453 |
06-10-12, 11:00 PM
آخر رد: RaggiTech
|
يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم