获取进行类调用的错误行号和文件名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取进行类调用的错误行号和文件名相关的知识,希望对你有一定的参考价值。

我有一个处理错误的课程。

我想调用类的公共静态方法来记录我的RPC服务器向我抛出的错误,而不需要使用__LINE__命令。

像这样的东西:

class errorHander{
    public static $errors = array();
    public static function logError($message){
        self::$errors[] = array('message', NEEED SOMHOW TO GET THE calling class, get the file in which the error ocured);
    }
}

这是最重要的,没有从被调用的函数传递文件位置。

所以像errorHander:logError(message, location)这样的东西是不行的。

答案

那么这显然取决于你有什么样的错误。

您可能希望查看异常处理。 phps异常类提供方法getLine()和getTrace()。这可能就是你要找的东西。

另一答案

Exception :: getLine和getFile方法,我没有办法在不处理Exceptions的情况下执行此操作。这是一个参考。 http://www.php.net/manual/en/class.exception.php

另一答案

logError()只需要一个参数而不是2。

做这样的事情:

 class errorHander{
        public static $errors = array();
        public static function logError($message){
            self::$errors[] = array('message'=>$message);
        }
    }


    errorHander:logError("This is a no-yes go") //This should log

    echo errorHander:errors[0]["message"]; //print it

希望能帮助到你

另一答案

这可以使用xdebug-extension:http://xdebug.org

您可以使用xdebug_call_file()xdebug_call_class()获取所需信息。

请参阅文档:http://xdebug.org/docs/all_functions

以上是关于获取进行类调用的错误行号和文件名的主要内容,如果未能解决你的问题,请参考以下文章

C# - 调用异常时如何获取类名和行号

从符号名和偏移量自动获取源和行号

调用 log4net 包装器方法后未在日志中获取文件名和行号

程序执行时如何打印文件路径和行号?

调试:获取调用函数的文件名和行号?

在针对 XML 模式验证 XML 文件时如何获取错误的行号