یک کلاس شمارنده (Counter) در جاوا بنویسید که متدهای increment، decrement و reset دارد و هنگام هر عمل پیام لاگ مناسب را با استفاده از java.util.logging یا Log4j ثبت کند و لاگها را در یک فایل خروجی بنویسد.
13.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 00:44یک کلاس ساده Counter بسازید با متدهای increment، decrement و reset که در هر متد از logger برای ثبت پیامهای مناسب (مثلاً INFO برای تغییرات معمول، WARNING برای کاهش زیر صفر یا SEVERE برای خطاها) استفاده کند. برای java.util.logging از Logger.getLogger، FileHandler، Formatter ساده و setLevel بهره ببرید و برای Log4j میتوانید از پیکربندی ساده (properties یا BasicConfigurator) و Appender فایل استفاده کنید؛ حتماً handler/appender را طوری تنظیم کنید که لاگها به فایل نوشته شوند و از setUseParentHandlers(false) یا معادل آن برای جلوگیری از دوبار لاگگرفتن استفاده کنید. برای تست، چند فراخوانی به متدها انجام دهید و فایل لاگ تولیدشده را بررسی کنید یا در تست واحد به دنبال پیامهای موردانتظار در خروجی لاگ بگردید؛ نکتههای مفید: سطح لاگ مناسب انتخاب کنید، handlerها را پس از پایان ببندید و پیامهای لاگ را توصیفکننده وضعیت (مثلاً مقدار جدید شمارنده) بنویسید.
برای اطمینان از رفتار درست در محیطهای چندریسمانی، شمارنده را با AtomicInteger یا سینک کردن متدها ایمن کنید تا لاگها همواره مقدار صحیح را گزارش دهند. حتماً FileHandler را با append مناسب، Formatter خوانا و setUseParentHandlers(false) تنظیم کنید و پس از اتمام کار handlerها را ببندید تا لاگها کامل نوشته شوند. پیامهای لاگ باید سطح مناسبی داشته باشند (INFO برای تغییرات عادی، WARNING برای کاهش احتمالی زیر صفر، SEVERE برای خطاهای واقعی) و مقدار جدید شمارنده را در هر پیام ذکر کنند تا بررسی آسان باشد. استثناهای مربوط به I/O لاگر را هندل کنید و در تستها فایل لاگ را برای پیامهای موردانتظار بررسی کنید.
گزارش