Question

Comment connecter nos propres messages d'erreur (par ex: erreur due à l'entrée de la date d'utilisateur non valide) qui est généré dans php programme drupal journal des erreurs .

Était-ce utile?

La solution

Vous pouvez utiliser le de watchdog :

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

Citant le manuel, les paramètres sont:

  • $type La catégorie à laquelle appartient ce message.
  • $message Le message à stocker dans le journal.
  • $variables Tableau de variables pour remplacer dans le message sur l'écran ou NULL si le message est déjà traduit ou non possible de traduire.
  • $severity La gravité du message, selon RFC 3164
  • $link Un lien à associer au message.

Et les niveaux d'erreur se trouvent sur la page de watchdog_severity_levels . Pour une erreur, vous utiliserez probablement le plus WATCHDOG_ERROR, ou peut-être même quelque chose de plus « critique », selon le type d'erreur.

Autres conseils

Drupal 8

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

Voir d'autres exemples Comment se connecter Messages dans Drupal 8 .

1) En effet, chien de garde est un moyen standard pour enregistrer propres erreurs PHP.

2) Sinon, si vous avez besoin de voir immédiatement les messages d'erreur lors du débogage de vos pages Drupal, vous pouvez les voir enregistrés / imprimés à droite à la page correspondante - dans la console Firebug. Parfois, est-ce très pratique lorsque vous pouvez voir les journaux juste à temps liées à la page. Cela nécessite - Devel module de l'extension Firebug pour FireFox et éventuellement FirePHP .

Vous pouvez utiliser la fonction DFBs () pour écrire des messages directement connecter à la console Firebug générale.

dfb($input, $label = NULL)

Si vous voulez garder vos messages journaux liés à Drupal de la console Firebug normale, vous pouvez écrire des messages à la Drupal pour Firebug log avec la fonction FiREP ():

firep($item, $optional_title)

chien de garde est la voie à suivre pour un système de production ne doute, mais au cours du débogage je trouve la fonction drupal_set_message utile.

Il transmet le message à l'écran où les « opération messages de type Successful' sont normalement affichés (assurez-vous de les supprimer avant de prendre le site en direct).

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

Dans 7 nous pouvons drupal connecter un message par la méthode suivante:

fonction de chien de garde, nous pouvons utiliser drupal pour se connecter message dans la base de données, assurez-vous que nous avons permis à module de base en option pour l'enregistrement de base de données à / admin / build / modules.

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

$ type: La catégorie à laquelle appartient ce message, Exemple:. PHP, .. Cron, nous pouvons filtrer un message par type

$ message: Le message à stocker dans le journal, Exemple: « Le module suivant est manquant du système de fichiers: security_review »

variables $: Tableau de variables pour remplacer dans le message sur l'écran ou NULL si le message est déjà traduit ou non possible de traduire. de faire traduire un message, ne passe pas les variables de passe de valeur dynamique dans le message doit être ajouté à l'aide des chaînes d'espace réservé.

Exemple: chien de garde ( 'cg_volunteer', 'cg dans form_alter% formly', array ( '% formly' => $ form [ 'id #']), WATCHDOG_NOTICE, $ link = NULL);

$ severity La gravité du message, les journaux peut être filtre par gravité selon RFC 3164. Les valeurs possibles sont WATCHDOG_ERROR, WATCHDOG_WARNING, etc. Pour plus d'exemple, voir https: // api. drupal.org/api/drupal/includes!bootstrap.inc/function/watchdog/7.x

$ link : Un lien à associer au message.

Exemple

// pour avis logs

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

// pour erreur Loging

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

nous avons utilisé 8 drupal méthode suivante:

// Pour les journaux d'un avis.

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

// Pour les journaux une erreur.

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

// Pour alerte, il faut agir immédiatement.

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

// Pour un message critique.

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

// Pour les messages au niveau de débogage.

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

// En cas d'urgence, le système est inutilisable.

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

// Pour Avertissement

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

// Pour les messages d'information.

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

Aussi pour traduisons nous ne devrions pas utiliser la fonction t ().

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

sera traduit sur le temps d'exécution.

Exemple:

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

Les deux watchdog pour D7 & \Drupal::logger pour J8 rédigera connecter table watchdog (dans votre base de données), et données énormes enregistrées , vous pouvez imaginer l'impact de la performance.

Vous pouvez utiliser la fonction php error_log pour le faire (voir manuel PHP ).

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

Vous devez avoir la permission d'écrire dans le fichier journal (/path/to/your/log/file.log)

drupal < une classe = "post-tag" href = "/ questions / marqués / drupal" title = "Afficher les questions tagged 'drupal'" rel = "tag"> drupal

// 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,
]);

Source

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top