2

我正在用 php 编写一个轻量级的日志记录类。如何自动记录从中调用 Log 类中的函数的文件名/函数/行号,并保存行号和时间等内容,而不会让我的用户在 每次调用函数时都为输入$__LINE__而烦恼。$__FILE__有什么我可以隐式调用的。

例子:

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

}
}

现在我希望能够像说文件 api.php 行号 15

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

在我的日志文件中,我想看看

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

有任何想法吗?我查看了 PEAR 和 log4php 解决方案,但它们对于我想要的东西来说似乎很重。

4

2 回答 2

2

看一下debug_backtrace函数,它似乎提供了您需要的所有信息:

function, line, file, class, object, type, args
于 2009-12-10T12:16:18.453 回答
1

魔术常量:http ://www.php.net/manual/en/language.constants.predefined.php

于 2009-12-10T12:20:01.567 回答