Changeset 113789 in spip-zone


Ignore:
Timestamp:
Feb 7, 2019, 10:59:03 AM (2 months ago)
Author:
cedric@…
Message:

sur des gros sites on peut avoir plein de sources d'envoi de mail, et quand on veut retrouver qui a envoye un mail problematique (par quel canal) c'est complique. On ajoute un backtrace dans facteur.log et on rend aussi un peu moins verbeuse la liste des destinataires

Location:
_plugins_/facteur/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/facteur/trunk/inc/envoyer_mail.php

    r107583 r113789  
    288288
    289289        // Et c'est parti on envoie enfin
    290         spip_log("mail via facteur\n$head"."Destinataire:".print_r($destinataire,true),'mail');
    291         spip_log("mail\n$head"."Destinataire:".print_r($destinataire,true),'facteur');
     290        $backtrace = facteur_backtrace();
     291        $trace = trim($head)
     292                . ($destinataire ? "\nDestinataire: " . implode(', ', $destinataire): '');
     293        spip_log("mail via facteur\n$trace",'mail');
     294        spip_log("mail\n$backtrace\n$trace",'facteur');
    292295        $retour = $facteur->Send();
    293296
     
    298301        return $retour ;
    299302}
     303
     304/**
     305 * Retourne la pile de fonctions utilisée pour envoyer un mail
     306 *
     307 * @note
     308 *     Ignore les fonctions `include_once`, `include_spip`, `find_in_path`
     309 * @return array|string
     310 *     pile d'appel
     311 **/
     312function facteur_backtrace($limit=10) {
     313        $trace = debug_backtrace();
     314        $caller = array_shift($trace);
     315        while (count($trace) and (empty($trace[0]['file']) or $trace[0]['file'] === $caller['file'] or $trace[0]['file'] === __FILE__)) {
     316                array_shift($trace);
     317        }
     318
     319        $message = count($trace) ? $trace[0]['file'] . " L" . $trace[0]['line'] : "";
     320        $f = array();
     321        while (count($trace) and $t = array_shift($trace) and count($f)<$limit) {
     322                if (in_array($t['function'], array('include_once', 'include_spip', 'find_in_path'))) {
     323                        break;
     324                }
     325                $f[] = $t['function'];
     326        }
     327        if (count($f)) {
     328                $message .= " [" . implode("(),", $f) . "()]";
     329        }
     330
     331        return $message;
     332}
  • _plugins_/facteur/trunk/paquet.xml

    r113259 r113789  
    22        prefix="facteur"
    33        categorie="communication"
    4         version="3.6.2"
     4        version="3.6.3"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.