Axude PHP, MySQL, Apache, Debian, et bien d'autres!
  • Comment activer les logs d'erreur PHP

    1
    scissors
    septembre 29th, 2010neriquePHP

    Il peut être pratique d’obtenir des logs d’erreur détaillés en provenance de PHP. Corriger les plus petits de ces bugs, même une NOTICE, peut optimiser votre code de manière non négligeable.

    Editer le fichier php.ini (sur Debian, dans une installa

    tion par défaut, le fichier php.ini chargé pour Apache2 se trouve là /etc/php5/apache2/php.ini)
    Il y a souvent plusieurs php.ini, pensez à modifier celui dont vous avez besoin (sur Debian toujours, vous pouvez faire un locate php.ini pour trouver la liste des fichiers portant ce nom. Pour savoir comment installer locate, cliquez ici.)

    Localisez la ligne

    display_errors

    Pour activer les logs PHP

    display_errors=On

    Pour désactiver les logs PHP

    display_errors=Off

    Pour le niveau d’erreurs, localisez la ligne

    error_reporting

    Voici les options disponibles, combinables entre elles

    ; E_ALL             - Tous les erreurs et warnings, n'inclue pas E_STRICT
    ; E_ERROR       buy generic viagra     - Erreurs fatales
    ;  E_RECOVERABLE_ERROR  - Erreurs presque fatales
    ; E_WARNING         - Erreurs non fatales
    ; E_PARSE           - Erreurs de compilation/parsing
    ; E_NOTICE          - Notices d'execution (ce sont des warnings qui proviennent la plupart du temps d'une erreur dans votre code, mais il est possible que ce soit intentionnel (utiliser une variable non initialisée, ...)
    ; E_STRICT          - Notices d'execution, l'activer pour obtenir des suggestions de modification de votre code par PHP afin d'assurer une meilleure interopérabilité
    ; E_CORE_ERROR      - Erreurs fatales qui surviennent pendant le démarrage de PHP
    ; E_CORE_WARNING    - Warnings (erreurs non fatales) qui surviennent pendant le démarrage de PHP;                   
    ; E_COMPILE_ERROR   - Erreurs fatales à la compilation
    ; E_COMPILE_WARNING - Erreurs non fatales à la compilation
    ; E_USER_ERROR      - Messages d'erreur générés par l'utilisateur
    ; E_USER_WARNING    - Warnings générés par l'utilisateur
    ; E_USER_NOTICE     - Notices générées par l'utilisateur
    
    Quelques exemples
    ;   - Affiche toutes les erreurs, à l'exception des notices et warnings standards
    ;
    ;error_reporting = E_ALL & ~E_NOTICE
    ;
    ;   - Affiche toutes les erreurs, à l'exception des notices
    ;
    ;error_reporting = E_ALL & ~E_NOTICE | E_STRICT
    ;
    ;   - Affiche seulement les erreurs
    ;
    ;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
    

    Pour préciser dans quel fichier les logs doivent s’écrire, localiser la ligne

    error_log
    

    et la changer pour par exemple

    error_log=/var/log/php5.log
    

    ou encore pour écrire dans le fichier syslog

    error_log = syslog

    Enfin, une fonction PHP très pratique est la fonction

    log_error

    Celle-ci va vous permettre d’écrire dans le fichier de log précisé plus haut au lieu de faire des affichages complets pour débuguer votre code.

    Elle s’utilise tout simplement:

    log_error("message à envoyer dans les logs");
    Tags: , , , , , , ,
 

1 responses to “Comment activer les logs d'erreur PHP” RSS icon

  • Quand on développe des outils ou des sites qui vont être amenés à être utilisé en prod. par d’autres personnes ou par un nombre important d’internautes, on se rend vite compte de l’importance du log des erreurs. Pour ce qui est des outils la « révélation » vient à nous lorsqu’un collaborateur vient vous signaler un bug, mais qu’il n’a pas eu le temps de consulter le message d’erreur ! ^^
    Merci donc pour ce récapitulatif !


Leave a reply