Forum Programmation.php Ecrire les php du "compilateur" php dans syslog

Posté par  .
Étiquettes : aucune
2
13
avr.
2010
Bonjour à tous,

J'ai découvert, il y a quelque temps la directive error_log de php.ini. Qui permet de rediriger les erreurs php dans un fichier. Combiné avec un display_error = off, c'est l'arme ultime de tout développeur php digne de ce nom.

Seul hic, la taille de ce fichier est limité, et une fois cette taille atteinte. Le programme php ne fonctionne plus tant que le fichier de log n'est pas supprimé.

Pour remédier à cela, je me dis que je n'ai qu'à rediriger vers syslog. Le hic est qu'après je n'arrive pas à configurer la redirection des log issus de php vers un fichier style /var/log/php.log.

Est-ce que quelqu'un connait la config à faire soit dans php.ini soit dans syslog.conf soit dans les deux pour que tout ce beau système fonctionne à merveille ?

Je suis aussi preneur d'une documentation pas trop mal faite sur syslog, si quelqu'un à ça en stock ?

Merci d'avance pour les réponses des aimables altruistes :-)
  • # logrotate

    Posté par  . Évalué à 2.

    • [^] # Re: logrotate

      Posté par  . Évalué à 3.

      Avec un coup de rsyslog si possible :-)
      Cela dit rsyslog est maintenant par défaut sur pas mal de distributions.

      Un (petit) défaut de logrotate est qu'il est appelé via cron. Une fois par jour en général. Même en le mettant une fois par heure, il arrive que certains journaux deviennent vraiment trop gros.
      Quelqu'un connaît l'équivalent de rsyslog qui reste en mémoire et surveille l'activité des journaux ? Appelé à chaque modification d'un des journaux par exemple.
      • [^] # Re: logrotate

        Posté par  . Évalué à 5.

        Pour faire ca tu peut utiliser incron (cron basé sur inotify) pour lancer un logrotate configuré avec une taille maximum pour les fichiers. Par contre je suis pas persuadé que les perf soit extra
    • [^] # Re: logrotate

      Posté par  . Évalué à 1.

      Merci, je ne connaissais pas logrotate...

      Je pense que syslog faisais cette rotation automatiquement.

      Ce n'est pas le cas ?
      • [^] # Re: logrotate

        Posté par  . Évalué à 3.

        Et non :-)
        syslog (rsyslog, etc) ne font _que_ la journalisation.
        logrotate ne fait _que_ la rotation des journaux.

        Et tu remarques qu'on peut utiliser ces logiciels pour tout autre chose (gérer des historiques de sauvegardes par exemple): un bon logiciel fait ce qu'on lui demande, un excellent logiciel fait aussi ce qui n'a pas été imaginé au départ.
  • # Commence par passer par Apache...

    Posté par  . Évalué à 2.

    Enfin, si tu utilise apache comme serveur web.

    Si tu mets log_error à on, et que tu ne renseigne pas error_log ; c'est les logs d'erreurs d'apache qui se chargeront d'afficher les erreurs.

    Du coup, si tu n'as qu'un site, ton système est déjà probablement tout configuré comme il faut pour gérer la rotation des logs apache, ou la redirection vers syslog.

    Bien sûr, tu peux utiliser la directive ErrorLog d'apache pour avoir un fichier particulier pour un virtualHost.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.