Получить строку кода и файл, который выполняет текущую функцию в PHP?

Представьте, что у меня следующая ситуация:

File1.php

<?php
 include("Function.php");
 log("test");
?>

Function.php

<?php
 function log($msg)
 {
  echo "";
 }
?>

Я хочу изменить функцию журнала, чтобы она производила следующее:

test (file: File1.php, line number: 3)

Итак, есть ли способ получить имя файла и номер строки кода, который выполнял текущую функцию в PHP?

EDIT for backlog usage comments: Когда я использую отставание в моем объектно-ориентированном способе программирования, у меня возникает следующая ситуация.

Index.php

<?php
 include("Logger.static.php");
 include("TestClass.class.php");
 new TestClass();
?>

TestClass.class.php

<?php
 class TestClass
 {
   function __construct()
   {
     Logger::log("this is a test log message");
   }
 }
?>

Logger.static.php

<?php
 class Logger
 {
   static public function log($msg)
   {
     $bt = debug_backtrace();
     $caller = array_shift($bt);
     echo $caller['file'];
     echo $caller['line'];
   }
 }
?>

Этот пример вернется в виде файла & quot; Index.php & quot; и как строка номер 4, это где класс инициируется. Тем не менее, он должен вернуть файл TestClass.class.php и номер строки 6. Есть идеи, как это исправить?

Ответы на вопрос(3)

Ваш ответ на вопрос