حسین احمدی
بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

آموزش نوشتن در Event Log با سی شارپ

یکی از بخش های سیستم عامل ویندوز که از رویدادهای مربوط به سیستم عامل و نرم افزارها و سرویس های موجود بر روی آن Log گرفته می شود، Event Log است که بوسیله ابزار Event Viewer می توان رویدادهای ثبت شده در آن را مشاهده کرد. در دات نت و زبان سی شارپ این امکان برای برنامه نویسان فراهم شده است تا بتوانند رویدادهای مورد نظر خود را در EventLog بنویسند. برای اینکار باید از کلاس EventLog در فضای نام System.Diagnostics استفاده کنیم. در ابتدا توضیحی در مورد ساختار Event Log و مفاهیم مرتبط با آن بدیم. زمانی که قصد داریم Log های مورد نظر را بنویسیم، باید یک Log و یک Source داشته باشیم. در تصویر زیر از برنامه Event Viewer بخش های Log و Source مشخص شده است:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
نوشتن در EventLog در سی شارپ

برای نوشتن Log ابتدا باید بررسی کنیم که Source ای با نام مورد نظر ما در Log ای که قصد داریم داخل بنویسیم تعریف شده یا خیر. برای اینکار از متد استاتیک SourceExists در کلاس EventLog به صورت زیر استفاده می کنیم و در صورت موجود نبودن Source مورد نظر آن را ایجاد می کنیم:

if (!System.Diagnostics.EventLog.SourceExists("Diagnostics"))
{
    EventLog.CreateEventSource(new EventSourceCreationData("Diagnostics", "ITProLogs"));
}

با اجرای کد بالا در صورت موجود نبودن Source ای با نام Diagnostics، آن را در Log ای با نام ITProLogs ایجاد می کنیم. در قدم بعدی باید Entry مورد نظر بوسیله کلاس EventLog نوشته شود. برای اینکار باید یک شئ از نوع EventLog ساخته و بوسیله متد WriteEntry آیتم های مورد نظر را در Event Log بنویسیم. کد زیر اینکار را برای ما انجام می دهد:

using (var log = new EventLog("ITProLogs", ".", "Diagnostics"))
{
    log.WriteEntry("Message1", EventLogEntryType.Error, 0);
}

در قسمت ایجاد شئ و به عنوان پارامترهای Constructor آیتم ها به ترتیب نام Log، نام Machine که در آن Log ها باید نوشته شوند و پارامتر سوم نام Source است. برای نوشتن Log ها از متد WriteEntry استفاده کردیم که پارامتر اول پیام مورد نظر، پارامتر دوم نوع پیام که شامل موارد Error، Warning, Information و ... می باشد و پارامتر سوم نیز شناسه خطا را مشخص می کند که می توانید یک عدد را مشخص کنید. این عدد به انتخاب برنامه نویس می باشد و هر عدد می توانید یک معنی بخصوص داشته باشد. پس از اجرای کدهای بالا پیام شما در EventLog نوشته می شود.


حسین احمدی
حسین احمدی

بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...

نظرات