PHP geçerli işlevi çağıran dosya / hattın adı kaydetmek nasıl?

2 Cevap php

I am writing a lightweight logging class in php. How do I automatically record the filename/function/line number where the function in the Log class is being called from and save the line number and time and stuff without making my users bother with entering $__LINE__ and $__FILE__ every time they call the function. Is there something that I can implicitly call.

Örnek:

class Log {
static private $instance;
static $logfile;
private function __construct(){
	// doesn't need to do anything
	// one logging object to avoid/control future/potential race conditions
}
public function getInstance(){
	if(!Self::$instance) {
		Self::$instance = new Log();
	} else {
		return Self::$instance;
	}
}

public function criticalLog($string){
	// I want this to be logging line number, filename

}
}

Şimdi diyelim ki dosya api.php hat sayısı 15 gibi bir şey mümkün olmak istiyorum

logInstance.criticalLog("This log is important");

Benim günlük dosyası, ben görmek istiyorum

12/10/09-11:15 api.php 15 This log is important

Herhangi bir fikir? Ben armut ve log4php çözümlere bir göz vardı, ama onlar ben istediğim için oldukça ağır görünüyor.

2 Cevap

debug_backtrace fonksiyonuna bir göz atın, bu size ihtiyacınız olan tüm bilgileri sağlar görünür:

function, line, file, class, object, type, args