گزارش گیری (Log) در Yii2

یکی از ابزار های مفید و پرکاربرد فریم ورک yii2 سیستم گزارش گیری می باشد که به برنامه نویس این امکان را می دهد تا برنامه ی خود را بهتر مدیریت کند .
برای ثبت پیام هایی که سیستم (و یا خودمون تعریف می کنیم)گزارش گیری میکند به روش های زیر عمل می کنیم :

  • Yii::trace()
  • Yii::info()
  • Yii::warning()
  • Yii::error

که به ترتیب برای:
تریس کردن کد توسط برنامه نویس ,
ثبت اطلاعات مفیدی که به برنامه نویس کمک می کند تا کد خود را بهتر مدیریت کند ,
ثبت پیام های هشدار دهنده ای که به صورت اتفاقی ممکن است رخ دهد ,
ثبت خطاهایی که سیستم را دچار مشکل می کند .
//در گزارش گیری پیام هایی که ثبت میشه دارای سطوح مختلف و دسته بندی های مفاوتی می باشند .
برای تنظیمات گزارش گیری به قسمت main.php در config می رویم
و در قسمت components . کد زیر به صورت پیش فرض به صورت زیر می باشد

 'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],

که امکان گزارش گیری در سطوح error و warning که در بالا اشاره کردیم را انجام می دهد .

نکته این که گزارش گیری به چند روش انجام می شود

      DbTarget
      EmailTarget
      FileTarget

در دیتابیس
ارسال ایمیل
و ذخیره سازی در فایل

که ما از روش fileTarget استفاده کردیم

گزارشات در مسیر
/runtime/logs/app.log ذخیره می گردد.
برای گزارشگیری اطلاعات بر اساس سطوح دیگر و در دسته بندی های دیگر می توانید بر اساس نیاز خود آن ها را ایجاد نمایید
به این صورت :

'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['info'],
                    'categories' => ['rss'],
                    'logFile' => '@app/runtime/logs/rss/rss.log',               
                ],
            ],
        ],

در کد بالا ما مشخص کردیم که سیستم ذخیره اطلاعات به صورت فایلی باشد
همچنین سطوح مورد استفاده را error و warning قرار دادیم
چیز جدیدی که اضافاه کردیم
level یا همون سطح می باشد که ما برابر با info قرار دادیم
و دسته بندی آن را rss تعیین کردیم
همچنین مسیر ذخیره سازی را در فولدری به نام rss و با نام rss.log قرار دادیم
در نهایت کاری که باید انجام بدیم
نحوه ی استفاده یا همون گزارش گیری می باشد

Yii::info($message,'rss');

با کد بالا ما پیامی را در گزارشات ثبت کردیم که جزئ دسته بندی rss می باشد
به این معنی که در rss.log ذخیره می گردد
نه در app.log

Leave a Reply

Your email address will not be published. Required fields are marked *