IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

class pour écrire des logs [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut class pour écrire des logs
    Bonsoir à tous,
    j'ai instaurer une class pour écrire mes logs éventuelle avec mes requête PDO.
    Mais je rencontre un probléme si j'ai une erreur sql.
    Je veux dire que si l'erreur est attraper elle retourne un sale truc et sans écrire le log....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     public function __set($name, $value)
        {
            switch($name)
            {
                case 'logfile':
                if(!file_exists($value) || !is_writeable($value))
                {
                    throw new Exception("$value is not a valid file path");
                }
                $this->logfile = $value;
                break;
                default:
                throw new Exception("$name cannot be set");
            }
        }
     
        /**
         *
         * @write to the logfile
         *
         * @access public
         *
         * @param string $message
         *
         * @param string $file The filename that caused the error
         *
         * @param int $line The line that the error occurred on
         *
         * @return number of bytes written, false other wise
         *
         */
        public function write($message, $file=null, $line=null)
        {
            $message = time() .' - '.$message;
            $message .= is_null($file) ? '' : " in $file";
            $message .= is_null($line) ? '' : " on line $line";
            $message .= "\n";
            return file_put_contents( $this->logfile, $message, FILE_APPEND );
        }
    Cette class est appellé dans une autre qui étend PDO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $result = $prepare->fetchAll();
    		    $prepare->closeCursor();
    		}catch(Exception $e){
     
                     $log = log::getLog();
     				 $log->logfile = '/tmp/errors.log';
     				 $log->write('An error has occured', $e->getFile(), $e->getLine());
                }
    Mon erreur est :
    Fatal error: Uncaught exception 'Exception' with message '/tmp/errors.log is not a valid file path' in /Applications/MAMP/htdocs/wizard/lib/magixcjquery/error/class.log.php:42 Stack trace: #0 /Applications/MAMP/htdocs/wizard/lib/magixcjquery/magixdb/class.DataOjects.php(206): log->__set('logfile', '/tmp/errors.log') #1 /Applications/MAMP/htdocs/wizard/lib/magixcjquery/magixdb/class.magixLayer.php(29): DataOjects->fetchAll('SELECT * FROM t...', Array, 'assoc') #2 /Applications/MAMP/htdocs/wizard/_scriptroot/test/index.php(28): magixLayer->select('SELECT * FROM t...', Array, 'assoc') #3 /Applications/MAMP/htdocs/wizard/_scriptroot/test/index.php(43): IniTest->testDb() #4 /Applications/MAMP/htdocs/wizard/_scriptroot/test/index.php(55): IniTest->request() #5 /Applications/MAMP/htdocs/wizard/test.php(15): IniTest->displayTest() #6 {main} thrown in /Applications/MAMP/htdocs/wizard/lib/magixcjquery/error/class.log.php on line 42
    On dirai qu'il ne trouve pas le fichier mais je l'ai créer pour tester

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Clairement, il ne retrouve pas le chemin!, le problème est juste là.

    Je ne sais comment cela fonctionne sous Mac, mais je serais toi, j'écrirais le chemin absolu pour s'y retrouver.

  3. #3
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Après un bon café, et un bon repas j'ai réfléchi et trouver la solution en ajoutant plusieurs condition à la class des logs.
    Pour ce qui est du chemin c'étais bien sa, il refusais une url ce qui est logique.
    Je lui ai juste donné un lien vers un dossier avec la bonne variable $_server ....

    Cela ajoute une bonne couche pour le débuggage,
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/04/2012, 12h04
  2. [MySQL] Classe pour développer des formulaire et gérer la BdD ?
    Par sami_c dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/11/2005, 11h29
  3. [FPDF] Quelle classe pour produire des PDF simples ?
    Par boteha dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 03/11/2005, 22h55
  4. Classe pour generer des logs
    Par freddyboy dans le forum MFC
    Réponses: 9
    Dernier message: 13/07/2005, 12h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo