یکی از ابزار های مفید و پرکاربرد فریم ورک yii2 سیستم گزارش گیری می باشد که به برنامه نویس این امکان را می دهد تا برنامه ی خود را بهتر مدیریت کند .
برای ثبت پیام هایی که سیستم (و یا خودمون تعریف می کنیم)گزارش گیری میکند به روش های زیر عمل می کنیم :
<ul>
<li>Yii::trace()</li>
<li>Yii::info()</li>
<li>Yii::warning()</li>
<li>Yii::error</li>
</ul>
که به ترتیب برای:
تریس کردن کد توسط برنامه نویس ,
ثبت اطلاعات مفیدی که به برنامه نویس کمک می کند تا کد خود را بهتر مدیریت کند ,
ثبت پیام های هشدار دهنده ای که به صورت اتفاقی ممکن است رخ دهد ,
ثبت خطاهایی که سیستم را دچار مشکل می کند .
//در گزارش گیری پیام هایی که ثبت میشه دارای سطوح مختلف و دسته بندی های مفاوتی می باشند .
برای تنظیمات گزارش گیری به قسمت main.php در config می رویم
و در قسمت components . کد زیر به صورت پیش فرض به صورت زیر می باشد
<code>
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
</code>
که امکان گزارش گیری در سطوح error و warning که در بالا اشاره کردیم را انجام می دهد .
نکته این که گزارش گیری به چند روش انجام می شود
<ul>
<ol>
DbTarget
</ol>
<ol>
EmailTarget
</ol>
<ol>
FileTarget
</ol>
</ul>
در دیتابیس
ارسال ایمیل
و ذخیره سازی در فایل
که ما از روش fileTarget استفاده کردیم
گزارشات در مسیر
/runtime/logs/app.log ذخیره می گردد.
برای گزارشگیری اطلاعات بر اساس سطوح دیگر و در دسته بندی های دیگر می توانید بر اساس نیاز خود آن ها را ایجاد نمایید
به این صورت :
<code>
'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',
],
],
],
</code>
در کد بالا ما مشخص کردیم که سیستم ذخیره اطلاعات به صورت فایلی باشد
همچنین سطوح مورد استفاده را error و warning قرار دادیم
چیز جدیدی که اضافاه کردیم
level یا همون سطح می باشد که ما برابر با info قرار دادیم
و دسته بندی آن را rss تعیین کردیم
همچنین مسیر ذخیره سازی را در فولدری به نام rss و با نام rss.log قرار دادیم
در نهایت کاری که باید انجام بدیم
نحوه ی استفاده یا همون گزارش گیری می باشد
<code>
Yii::info($message,'rss');
</code>
با کد بالا ما پیامی را در گزارشات ثبت کردیم که جزئ دسته بندی rss می باشد
به این معنی که در rss.log ذخیره می گردد
نه در app.log