
حزمة الملحن خفيفة الوزن لتسجيل الملف مع القدرة على إرسال أخطاء باستخدام WebHook.
مثال الاستخدام
لإعداد المسار على مستوى العالم لجميع ملفات السجل ، يمكنك الاتصال بـ setPath طريقة في ملف bootstrap الخاص بك.
use Serhii TinyLogger Logger ;
Logger:: setPath ( ' logs/errors.log ' ); // simple format
Logger:: setPath ( ' logs/%s.log ' , ' errors ' ); // sprintf formatملاحظة: إذا كنت ترغب في استخدام Logger في نصوص CRON أو شيء مثل WordPress Hook ، فأنت بحاجة إلى استدعاء
setPath()في الخطوة الأولى من تنفيذ البرنامج النصي ، فهذا يعني أن مشروعك قد يحتوي على أماكن متعددة حيث تحتاج إلى تعيين مسار لسجلاتك. إذا كنت لا ترغب في استدعاءsetPath()فيمكنك فقط تمرير المسار إلى وظيفةtiny_log()كوسيطة ثالثة. انظر مثال في قسم الاستخدام.
تأتي هذه الحزمة مع وظيفة tiny_log() حيث لا تكون الوسيطات الثانية والثالثة مطلوبة.
tiny_log ( ' Some error message ' );
// Output in file: [2020-01-12 04:09:16] error: Some error message.
tiny_log ( ' Some error message ' , ' info ' );
// Output in file: [2020-01-12 04:09:16] info: Some error message.
tiny_log ( ' Some error message ' , ' debug ' , ' logs/debug.log ' );
// If you don't need to set path globally, just pass file path as the third argument to the tiny_log function .يمكنك أيضًا استخدام فئة المسجل إذا أردت. وسوف تفعل الشيء نفسه مثل استخدام الدالة.
use Serhii TinyLogger Logger ;
Logger:: new ()-> error ( ' Some error message ' );
Logger:: new ()-> info ( ' Some info message ' );
Logger:: new ()-> debug ( ' Some error message ' ); لاستخدام أحد الخيارات المتاحة ، يمكنك تمرير علامة معينة اختياريًا إلى وظيفة tiny_log() كوسيطة ثانية. إذا كنت بحاجة أيضًا إلى تمرير نوع الخطأ ، فما عليك سوى فصلها مع الأنبوب | شخصية. انظر المثال مع خيار pos :
tiny_log ( ' Some error message ' , ' pos ' ); // just passing option
tiny_log ( ' Some error message ' , ' pos|error ' ); // 'pos' option with error type 'error'
tiny_log ( ' Some error message ' , ' pos|info ' ); // 'pos' option with error type 'info' pos - عرض موقف المسجل. في أي ملف وعلى رقم السطر هو. من المفيد عندما تصحيح الأخطاء ، وعدم نسيان المكان الذي تضع فيه المسجل الخاص بك. انظر مثال الإخراج: [2020-01-12 04:09:16] info: Some log message goes here
>>> /var/www/html/app/Services/App.php on line: 77.
يتيح لك Tiny Logger إرسال سجلات ككائن JSON على نقطة نهاية محددة. لتمكين هذا الخيار ، تحتاج إلى استدعاء طريقة enablePostRequest على فئة Logger . لتعطيل طلب البريد ، استخدم طريقة disablePostRequest .
use Serhii TinyLogger Logger ;
Logger:: enablePostRequest ( ' http://my-site.com/webhook ' ); الآن في حالة حدوث خطأ ، سيتم إرسال JSON إلى http://my-site.com/webhook نقطة نهاية مع طلب النشر.
{
"timestamp" : " 1611675632 " ,
"message" : " Undefined variable at line 24 in \ App \ Models \ User class. " ,
"type" : " error "
} إذا كنت بحاجة إلى تخصيص بنية كائن JSON ، فيمكنك تمرير Array كوسيطة ثانية حول طريقة enablePostRequest .
use Serhii TinyLogger JsonFieldValue ;
use Serhii TinyLogger Logger ;
Logger:: enablePostRequest ( ' http://my-site.com/webhook ' , [
' time ' => JsonFieldValue:: TIMESTAMP ,
' errorMessage ' => ' Error message: ' . JsonFieldValue:: MESSAGE ,
' errorType ' => JsonFieldValue:: ERROR_TYPE ,
' token ' => getenv ( ' MY_AUTH_TOKEN ' )
]);الآن ستحصل على JSON مثل هذا:
{
"time" : " 1611675632 " ,
"errorMessage" : " Error message: Undefined variable at line 24 in \ App \ Models \ User class. " ,
"errorType" : " error " ,
"token" : " 29d62x7g656e6f9 "
}سيتم استبدال كل ثابت JsonfieldValue بقيمته. على سبيل المثال ، سيتم استبدال رسالة JsonfieldValue :: برسالة الخطأ. سيتم استبدال JsonfieldValue :: Timestamp بخطأ الطابع الزمني.
ملاحظة: إذا كنت ترغب في استخدام Logger في نصوص cron أو شيء مثل خطاف WordPress ، فأنت بحاجة إلى استدعاء
enablePostRequestفي الخطوة الأولى من تنفيذ البرنامج النصي.
لتثبيت جميع تبعيات PHP ، تحتاج إلى تثبيت مدير حزمة PHP الملحن على جهازك. ثم تحتاج إلى تشغيل الأمر أدناه في دليل الجذر الخاص بك للمشروع.
composer require serhii/tiny-logger