سؤال

كيفية تسجيل لدينا رسائل الخطأ الخاصة(بالنسبة إلى Ex: خطأ بسبب إدخال تاريخ المستخدم غير صالح) الذي يتم إنشاؤه بي أتش بي برنامج ل خطأ في خطأ Drupal.

هل كانت مفيدة؟

المحلول

يمكنك استعمال ال watchdog وظيفة :

watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NOTICE, $link = NULL)

نقلا عن الدليل، المعلمات هي:

  • $type الفئة التي تنتمي إليها هذه الرسالة.
  • $message الرسالة لتخزينها في السجل.
  • $variables صفيف المتغيرات لاستبدالها في الرسالة الموجودة في العرض أو NULL إذا ترجمت الرسالة بالفعل أو غير ممكن للترجمة.
  • $severity شدة الرسالة، وفقا ل RFC 3164
  • $link رابط للربط بالرسالة.

ويمكن العثور على مستويات الخطأ في صفحة watchdog_severity_levels. وبعد لخطأ، سوف تستخدم على الأرجح WATCHDOG_ERROR, ، أو ربما حتى شيء أكثر أهمية "، اعتمادا على نوع الخطأ.

نصائح أخرى

دروبال 8.

// Logs a notice
\Drupal::logger('my_module')->notice($message);
// Logs an error
\Drupal::logger('my_module')->error($message);

رؤية المزيد من الأمثلة في كيفية تسجيل الرسائل في Drupal 8.

1) في الواقع، WatchDog هي طريقة قياسية لتسجيل أخطاء PHP الخاصة.

2) بدلا من ذلك، إذا كنت بحاجة إلى رؤية رسائل الخطأ على الفور أثناء تصحيح صفحات Drupal الخاصة بك، فقد ترغب في رؤيتها مباشرة / طباعتها مباشرة في الصفحة ذات الصلة - في وحدة تحكم Firebug. في بعض الأحيان يكون هذا مريحا للغاية عندما ترى سجلات مرتبطة بالصفحات. هذا يتطلب - تنمية وحدة، Firebug. التمديد إلى فايرفوكس وربما firephp..

يمكنك استخدام وظيفة DFB () لكتابة رسائل السجل مباشرة إلى وحدة تحكم Firebug العامة.

dfb($input, $label = NULL)

إذا كنت ترغب في الاحتفاظ برسائل سجل Drupal الخاصة بك من وحدة التحكم Normal Firebug، فيمكنك كتابة رسائل إلى دروبال ل firebug. سجل مع FireP () وظيفة:

firep($item, $optional_title)

الوكالة الدولية للطاقة هي الطريقة التي يجب أن تذهب لنظام الإنتاج بلا شك ولكن أثناء تصحيح الأخطاء drupal_set_message وظيفة مفيدة.

يخرج الرسالة إلى الشاشة حيث يتم عرض الرسائل "العملية الناجحة" عادة (لذلك تأكد من إزالتها قبل أن تعيش الموقع).

http://api.drupal.org/api/function/drupal_set_message/6.

في DRUPAL 7 يمكننا تسجيل رسالة بالطريقة التالية:

وظيفة مراقبة DRUPAL التي يمكننا استخدامها لتسجيل رسالة البيانات في قاعدة البيانات، تأكد من أننا تم تمكين الوحدة النمطية الاختيارية لتسجيل قاعدة البيانات في / admin / build / modules.

watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NOTICE, $link = NULL)

نوع $:الفئة التي تنتمي إليها هذه الرسالة، مثال: PHP، Cron ..، يمكننا تصفية الرسالة حسب النوع.

رسالة $:الرسالة لتخزينها في السجل، مثال: "الوحدة النمطية التالية مفقودة من نظام الملفات: security_review '

المتغيرات $:صفيف المتغيرات لاستبدالها في الرسالة الموجودة في العرض أو NULL إذا ترجمت الرسالة بالفعل أو غير ممكن للترجمة. لجعل الرسائل المترجمة، لا تمر بإدارة متغيرات القيمة الديناميكية في الرسالة في الرسالة باستخدام سلاسل العنصر النائب.

مثال:المراقبة (CG_VOLUNTEER "،" CG "في Form_alter٪ بشكل خاص"، صفيف ("٪" => $ نموذج ['# ID'])، WatchDog_Notice، $ Link = NULL)؛

شدة $شدة الرسالة، يمكن أن تكون السجلات مرشح بواسطة شدة حسب رايتك 3164. القيم المحتملة هي watchdog_error، watchdog_warning، إلخ. لمزيد من المثال انظر https://api.drupal.org/api/drupal/includes bootstrap.inc/function/watchdog/7.x.

رابط $: رابط للربط بالرسالة.

مثال

// للحصول على إشعارات السجلات

watchdog('my_module', $message, array());

// لتسجيل خطأ

watchdog('my_module', $message, array(), WATCHDOG_ERROR);

في Drupal 8 استخدمنا الطريقة التالية:

// للحصول على سجلات إشعار.

\Drupal::logger('my_module')->notice($message);

// لسجل خطأ.

\Drupal::logger('my_module')->error($message);

// لتنبيه، يجب اتخاذ الإجراءات على الفور.

\Drupal::logger('my_module')->alert($message);

// للحصول على رسالة حرجة.

\Drupal::logger('my_module')->critical($message);

// رسائل على مستوى التصحيح.

\Drupal::logger('my_module')->debug($message);

// لحالة الطوارئ، النظام غير قابل للاستخدام.

\Drupal::logger('my_module')->emergency($message);

// للتحذير

\Drupal::logger('my_module')->warning($message);

// رسائل إعلامية.

\Drupal::logger('my_module')->info($message);

أيضا للترجمة، يجب ألا نستخدم وظيفة T ().

\Drupal::logger('my_module')->alert('Message from @module: @message.', [
'@module' => $module,
'@message' => $message,
]);

سيتم ترجمة هذا على وقت التشغيل.

مثال :

\Drupal::logger('content_entity_example')->notice('@type: deleted %title.',
array(
'@type' => $this->entity->bundle(),
'%title' => $this->entity->label(),
));

كلاهما watchdog ل D7 و \Drupal::logger ل D8 سوف يكتب تسجيل الدخول watchdog الجدول (في قاعدة البيانات الخاصة بك)، ومع تسجيل البيانات الضخمة, ، يمكنك تخيل تأثير الأداء.

يمكنك استخدام error_log وظيفة PHP للقيام بذلك (انظر دليل PHP).

error_log("Your message", 3, "/path/to/your/log/file.log");

تحتاج إلى الحصول على إذن بالكتابة في ملف السجل الخاص بك (/path/to/your/log/file.log)

// Get logger factory.
$logger = \Drupal::service('logger.factory');

// Log a message with dynamic variables.
$nodeType = 'Article';
$userName = 'Admin';
$logger->get($moduleName)->notice('A new "@nodeType" created by %userName.', [
    '@nodeType' => $nodeType,
    '%userName' => $userName,
]);

مصدر

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top