• 12-08-2013, 15:59:16
    #1
    Her insan gibi bizlerin de kodlarımızda hata yaptığımız anlar olabiliyor. İşin en kötü tarafı, yapılan hatanın farkına varamamak. Sağolsun ziyaretçiler de haberdar etme konusunda hiç de oralı değil.

    Neyseki çoğu sunucuda php kod hatalarını loglayan bir sistem bulunmakta. Bu sistem, hata koduyla ilgili bilgileri error_log adında bir dosyada saklıyor. İyi güzel de, bizim bu error_log dosyasını görebilmemiz için FTP ile siteye bağlanıp, tüm dizinlerde error_log dosyasını aramamız gerekmekte. Bu çok zahmetli bir iş.

    Hazırladığım bu araçla bu dertten kurtulacaksınız:

    Öncelikle bir önceki yazımda paylaştığım fonksiyonu indirin.

    http://soulmy.net/wp-content/uploads...and-folder.rar

    rar içindeki dosyayı çıkartın.

    Şimdi error_log_search.php adında yeni bir dosya oluşturun ve içine,

    <?php
    
    include('file-and-folder.php');
    
    ?>
    yazın.

    Şimdi de error_log dosyalarını bulacağımız fonksiyonu yazalım.

    <?php
    include('file-and-folder.php');
    
    $dir = '/home/*******/public_html/';
    
    function error_log_bul($dir) {
    
    	global $dosyalar,$error_log_dosyalari;
    
    	all_file_and_folder_search($dir);
    
    	$error_log_dosyalari = array();
    
    	foreach ( $dosyalar as $gecici => $sef ) {
    
    		if ( preg_match("/error_log/", $sef) ) {
    
    			$error_log_dosyalari[] = $sef;
    
    		}
    
    	}
    
    	if ( empty($error_log_dosyalari) ) { return false; }
    	else { return $error_log_dosyalari; }
    
    }
    
    error_log_bul($dir);
    
    if ( !empty($error_log_dosyalari) ) {
    
    	foreach ( $error_log_dosyalari as $dosya ) {
    
    		echo $dosya."<br/>";
    
    	}
    
    } else {
    
    	echo 'error_log dosyası bulunamadı.';
    
    }
    
    ?>
    Sayfanın başındaki $dir değişkenini kendinize göre düzenleyin.

    Bunda sonra adres çubuğuna yazıp http://siteadi.com/error_log_search.php taramaya başlayın. (Eğer çok sayıda dosya varsa, tarama işlemi uzayacaktır.)

    Bu sayfayı cron-jobs ile her gün 1 kere çalışacak ve oluşan raporu mail adresine gönderecek şekilde geliştirirseniz, çok daha verimli olacaktır.

    Cron-jobs ve mail gönderme apayrı bir konu olduğu için burada o konuya girmek istemedim. Sadece işin mantığını göstermek istedim. Aracı geliştirmek sizin elinizde.

    Başka bir yazıda görüşmek üzere kendinize iyi bakın

    Kaynak:
    http://soulmy.net/sitenizdeki-error_...-en-kisa-yolu/
  • 13-08-2013, 00:49:42
    #2
    paylaşım için teşekkürler güzel bir fikir
  • 13-08-2013, 01:35:01
    #3
    Üyeliği durduruldu
    fonksiyonu bir mail eklendimi tadından yenmez hata anında direk uyarı maili alırsın.
  • 13-08-2013, 16:21:51
    #4
    çok güzel bir sistem @netmaster'ın dediği gibi email ile uyarı sistemide olsa hakikaten tadından yenmez boş zaman bulursam belki eklemeyi yapabilirim
  • 30-08-2013, 13:42:50
    #5
    Beğenmenize sevindim arkadaşlar. Birkaç gün içinde mail fonksiyonu da eklerim

    Dipnot: Köyden yeni döndüğüm için geç cevap yazdım, kusura bakmayın.
  • 04-09-2013, 22:25:28
    #6
    Bugün bir boşluk buldum yazayım dedim. İşte mail fonksiyonu eklenmiş hali.

    <?php
    include('file-and-folder.php');
    
    $dir = '/home/********/public_html/';
    
    function error_log_bul($dir) {
    
    	global $dosyalar,$error_log_dosyalari;
    
    	all_file_and_folder_search($dir);
    
    	$error_log_dosyalari = array();
    
    	foreach ( $dosyalar as $gecici => $sef ) {
    
    		if ( preg_match("/error_log/", $sef) ) {
    
    			$error_log_dosyalari[] = $sef;
    
    		}
    
    	}
    
    	if ( empty($error_log_dosyalari) ) { return false; }
    	else { return $error_log_dosyalari; }
    
    }
    
    error_log_bul($dir);
    
    if ( !empty($error_log_dosyalari) ) {
    
    	$ileti = '';
    	foreach ( $error_log_dosyalari as $dosya ) {
    
    		$ileti .= $dosya."<br/>\n";
    
    	}
    	echo $ileti;
    	mail('MAİL_ADRESİNİZİ_GİRİN', 'Önemli! Sitenizde error_log Dosyası Bulundu', $ileti);
    	
    } else {
    
    	echo 'error_log dosyası bulunamadı.';
    
    }
    
    ?>