我想为日志编写一个非常通用的函数:
function msglog($type, $message) {
echo date("r") . " " . __FILE__ . " - $type - $message" . PHP_EOL;
}
我将在我的代码中几乎所有地方都使用它,这些代码将在几个 php 脚本中分派include
。如此处所示,无论在何处调用该函数,__FILE__
都始终使用主脚本文件名进行赋值。
有没有一种方法可以在函数本身中获取调用者脚本的名称,而无需将其作为参数传递?
EDIT1 - 它不是重复的
尽管目的是检索来电者信息,就像其他一些问题一样,解决方案是相同的。知道答案就很明显它们是相互关联的。我的问题有另一个“范围”。它与包含和脚本文件名检索相关,而不是未知上下文中的函数名。
EDIT2 - 答案
是的,debug_backtrace()
功能就是答案。
这是我正在寻找的解决方案:
function msglog( $type, $message) {
$caller = debug_backtrace();
echo date("r") . $caller[0]["file"] . " - $type - $message" . PHP_EOL;
}