2016-09-20 48 views
5

Tüm sorguları kanca kullanarak yürütme işleminden sonra günlüğe kaydetmek istiyorum. >Codeigniter'da çalıştırıldıktan sonra tüm sorguları günlüğe kaydetme

$hook['post_controller'] = array( 
    'class' => 'Db_log',    
    'function' => 'logQueries',  
    'filename' => 'db_log.php',  
    'filepath' => 'hooks'   
); 

-ve bu kanca tanımı olduğunu - - -i etkin kancalar -bu config.php benim kanca>

class Db_log 
{ 

    function __construct() 
    { 
    } 


    function logQueries() 
    { 
     $CI = & get_instance(); 

     $filepath = APPPATH . 'logs/Query-log-' . date('Y-m-d') . '.php'; 
     $handle = fopen($filepath, "a+");       

     $times = $CI->db->query_times; 
     foreach ($CI->db->queries as $key => $query) 
     { 
      $sql = $query . " \n Execution Time:" . $times[$key]; 

      fwrite($handle, $sql . "\n\n");  
     } 

     fclose($handle); 
    } 

} 
query_log dosyasını oluşturarak

yanından turistler arasında popüler - ancak sorguların kayıtlarının hiçbiri kaydedilmiyor

cevap

4

Kodunuz iyi görünüyor - bunun neden çalışmadığının tek nedeni DB Yapılandırmanızda yer alıyor - application/config/database/php altındaki bir DB Bağlantısına bakın/

sadece ben config de $ kanca dizisi tanımlamak/hooks.php çalıştı Benim için gerçek

$db['default'] = array(
    ... 
    'save_queries' => TRUE 
); 
+0

teşekkürler ... o kodunun üzerinde –

+0

şimdi iyi çalışıyor ... ama onun günlük sorguları sadece SEÇ .... çalıştı ne ben sadece INSERT, UPDATE istiyoruz ve bunun yerine SEÇ sorgularının giriş SİL olur? Sorgularının –

+0

hatta diğer türleri günlüğe almalısınız - sorgularda sorguları – sintakonte

0

ayarlanmalıdır bir seçenek "save_queries" yoktur.