Codeigniter isteğe bağlı log oluşturma

Codeigniter 3 sürümünde bildiğiniz gibi varsayılan olarak 4 adet log tutma seçeneği ile geliyor. Bu log seçenekleri belli durumlarda otomatik olarak devreye giriyordu. Peki biz istediğimiz zaman log tutmamız gerekse ne yapmamız gerekirdi.

 

Bunun için system klasöründeki log.php dosyasında ufak bir değişiklik yapmamız gerekecek.

Öncelikle Codeigniter/system/core/log.php dosyasını açıyoruz.

 

 

Codeigniter 3 log.php

 

 

 

 

 

Dosyanın içerisinde protected $_levels = array('ERROR' => 1, 'DEBUG' => 2, 'INFO' => 3, 'ALL' => 4); yazan satırları bulup protected $_levels = array('ERROR' => 1, 'DEBUG' => 2, 'INFO' => 3, 'ALL' => 4,'CUSTOM'=>5); şeklinde değiştiryoruz. Yani sonuna CUSTOM=>5 şeklinde yeni bir değer ekledik. Bu değer bize config dosyasında nelerin log değerlerini tutacağımızı ayarlamada lazım olacak.

 

Gene aynı dosyada aşağıdaki satırı bulun

$filepath = $this->_file_ext:$this->_log_path.'log-'.date('Y-m-d').'.'.$this->_file_ext;

Bu satırlarını bununla değiştirin 

$filepath =($level=='CUSTOM')? $this->_log_path.'custom-log-'.date('Y-m-d').'.'.$this->_file_ext:$this->_log_path.'log-'.date('Y-m-d').'.'.$this->_file_ext;

Config.php dosyasını açın ve log satırını bulun aşağıdaki şekilde değiştirin.

$config['log_threshold'] = [1,5];

 

Bu işlemlerden sonra Custom log hazır demektir.

Kullanmanız gereken yerde aşağıdaki şekilde kullanabilirsiniz.

log_message('custom',$this->router->fetch_class().'/'.$this->router->fetch_method().'|||'.print_r($this->uri->segments,true).'|||'. print_r($this->session->all_userdata(),true));

Yukarıdaki örnekte 1. parametre custom nasıl bir log tutacağımızı sonrasında gelen değerler ise log dosyasının içeriğine yazmak istediğimiz değerleri gösteriyor. Yukarıdaki örnekte o anda çalışan class ve metodu adres çubuğunda ne yazdığını ve session’da olan bilgileri kaydediyorum.

Bu log sistemi kullanıcıya fazla bilgi vermek istemediğiniz durumlarda olan biteni bir dosyaya kaydetmek için oldukça güzel bir yöntem. Aşağıda ise örnek dosya ve sonucunu görüyorsunuz.

 

Custom log örnek çıktı

 

 

 

 

 

Yazar: ali

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir