یکی از اصلی ترین راه های تشخیص سو mal عملکرد در عملکرد نرم افزاری که قبلاً در رایانه کاربر در حال اجرا است ، نگه داشتن گزارش های وقایع - سیاهههای مربوط است. به طور معمول ، آنها اطلاعات مربوط به پرتاب ها و همچنین اطلاعات مهم در مورد وضعیت فرآیند و محیط سیستم را در صورت خرابی حیاتی ضبط می کنند. شما می توانید با استفاده از خود و همچنین با استفاده از سرویس های ویژه سیستم عامل ها سیاهههای مربوط را ایجاد کنید.
لازم است
- - مترجم از زبان برنامه نویسی مورد استفاده ؛
- - احتمالاً Windows Platform SDK ؛
- - احتمالاً یک بسته توسعه برای glibc.
دستورالعمل ها
مرحله 1
شرایط استفاده را تجزیه و تحلیل کرده و الزامات زیر سیستم ، جز component یا کتابخانه توسعه یافته ای را که باعث ثبت سیاهه ها می شود ، تشکیل دهید. به س questionsالات مربوط به اینکه در کدام پلتفرم یا سیستم عامل باید فعالیت کند ، API آن پاسخ دهید.
گام 2
مطابق با ویژگیهای عملکردی شناسایی شده و API ارائه شده ، الگویی برای زیر سیستم ورود به سیستم ایجاد کنید. شروع به اجرای عملکرد آن کنید.
مرحله 3
ساده ترین گزینه برای ورود به سیستم ، ایجاد فایلها به طور مستقل در مکانی است که توسط پیکربندی برنامه تعیین شده است و سپس نوشتن داده ها با هر فرمت برای آنها. از توابع کتابخانه استاندارد C (fopen ، fclose ، fwrite) ، اشیا stream جریان کتابخانه استاندارد C ++ (ofstream) ، کلاسهای فریم ورک استفاده شده (مانند CFile ، QFile) یا توابع API سیستم عامل (CreateFile ، WriteFile در ویندوز) استفاده کنید.
مرحله 4
ورود به سیستم را با استفاده از syslog API در سیستم عامل های سازگار با UNIX پیاده سازی کنید. توابع API syslog در پرونده هدر syslog.h اعلام می شوند. آن را در مکان مناسب در کد منبع پروژه خود متصل کنید.
مرحله 5
با استفاده از تماس عملکرد openlog به سرویس syslog متصل شوید. به عنوان پارامتر ، یک نشانگر را به یک رشته حاوی شناسه برنامه یا م componentلفه ای که می نویسد ، پرچم های گزینه و ماسک رویدادهایی که باید به log منتقل شود ، منتقل کنید. برای افزودن ورودی به گزارش از تماس ها به توابع syslog و vsyslog استفاده کنید. برای قطع ارتباط با سرویس ، با عملکرد closelog تماس بگیرید. یک مثال ساده از کد syslog ممکن است به صورت زیر باشد:)؛ closeelog ()؛ منطقی است که هنگام تنظیم اولیه برنامه به syslog متصل شوید و هنگام خاموش کردن قطع ارتباط کنید.
مرحله 6
در سیستم عامل های ویندوز ، از EventLog API برای افزودن ورودی به گزارش های سیستم استفاده کنید. با RegisterEventSource تماس بگیرید تا توصیف کننده ورود به سیستم را در دستگاه مشخص شده دریافت کنید. هنگام فراخوانی تابع ReportEvent که در لاگ می نویسد ، از این دسته استفاده کنید. پس از اتمام ، با DeregisterEventSource تماس بگیرید تا اتصال را قطع کرده و منابع اختصاص یافته توسط RegisterEventSource را آزاد کنید. ساده ترین مثال کار با EventLog می تواند این باشد: HANDLE h =:: RegisterEventSource (NULL ، "AnySource")؛ ASSERT (h! = NULL)؛:: ReportEvent (h، EVENTLOG_INFORMATION_TYPE، 0، 0، NULL، 3، 0، "Text1Text2Text3"، NULL)؛:: DeregisterEventSource (h)؛ همانند syslog ، منطقی است که با RegisterEventSource تماس بگیرید در شروع و DeregisterEventSource در خاموش کردن برنامه.