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....
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
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 ); }
Mon erreur est :
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()); }
On dirai qu'il ne trouve pas le fichier mais je l'ai créer pour testerFatal 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
Partager