web-dev-qa-db-fra.com

Dans Drupal 7 comment sortir les objets du tableau pour pouvoir les visualiser dans les rapports d'erreur du chien de garde?

Pour une raison quelconque, je ne pouvais pas utiliser devel pour déboguer les tableaux d'objets de sortie. Existe-t-il un moyen de sortir les données de la baie vers le rapport d'erreur du chien de garde? Cela résoudrait également le problème de l'installation ou de l'activation d'un autre module.

5
Patoshi パトシ

Vous pouvez utiliser watchdog mais la partie message doit être traduisible, donc toutes les variables doivent utiliser des espaces réservés définis dans le tableau des variables. Consultez format_string pour voir comment cela devrait fonctionner.

watchdog(
  'my_module_name',
  'Here is the printed variable: <pre>@placeholder_name</pre>',
  array('@placeholder_name' => print_r( $my_variable, TRUE)),
  WATCHDOG_INFO
);

De plus, la convention veut que le premier paramètre, $type, devrait être le nom du module appelant watchdog.

10
featherbelly

Vous pouvez effectuer les opérations suivantes pour sortir les données du tableau à afficher dans le chien de garde:

// Directly use values.
watchdog("log_name", '<pre>' . print_r( $my_object, true) . '</pre>');

Ensuite, allez à/admin/reports et recherchez "log_name".

9
Patoshi パトシ

Si cela ne vous dérange pas d'activer un autre module, j'ai écrit le journal des objets pour ce genre de chose:

https://www.drupal.org/project/object_log

Il est léger, plus facile à utiliser dans le code, plus convivial à afficher et n'est pas poussé dans le journal lorsque d'autres événements de journal sont enregistrés.

2
Les Lim