记录Sql错误Cakephp

记录Sql错误Cakephp,php,sql,cakephp,Php,Sql,Cakephp,我正在使用一个插件来记录Cakephp应用程序中的错误和警告,它正在按预期工作,但我想,如果与我的DB的连接不正常,那么我仍然需要记录这些错误,但这次是在一个外部文件中, 这个想法应该很简单,我调用CaeLog::write(),在这些方法中(插件重新实现了它),我会使用“try/Catch”将消息写入日志文件,这在抛出异常时会有帮助。 我的bootstrap.php如下所示:` App::使用('CakeLog','Log') 在write方法中,我有以下代码 function write($

我正在使用一个插件来记录Cakephp应用程序中的错误和警告,它正在按预期工作,但我想,如果与我的DB的连接不正常,那么我仍然需要记录这些错误,但这次是在一个外部文件中, 这个想法应该很简单,我调用CaeLog::write(),在这些方法中(插件重新实现了它),我会使用“try/Catch”将消息写入日志文件,这在抛出异常时会有帮助。 我的bootstrap.php如下所示:` App::使用('CakeLog','Log')

在write方法中,我有以下代码

function write($type, $message){
        try {

               //Save In Db
        } catch (Exception $exc) {
//If the save in DB fails call log in fileLog(which has been defined in bootstrap.php)
            CakeLog::write('fileLog', "***************************\n".$exc."\n***************************\n");
        }     
}

现在的问题是:我得到了一个循环,这是catch块中调用的原因,它正在尝试再次保存到db中,没有循环我如何解决这个问题?

为什么您当前的设置阻止您记录db连接错误?我想不是,有时候db不可用,在这种情况下,我需要将它记录到一个文件中,这里也有一个异常处理程序,但是我将用它记录每个异常,但是对于这个特定的情况,我没有发现DB/SQLException,我不确定我是否理解。每个错误都是一个错误,如果你记录一个,你就可以记录所有的错误,除非你实际上是在数据库中记录的,你没有提到。好吧,如果你有两种类型的错误呢??NullException和MathematicalExceptions(比如divideByZero)我如何自动指定,这两个都将记录在配置中的两个不同文件中?这可能吗??我只是不认为把所有的错误都放在同一个文件中是一个好主意一般来说,在文件中记录是一个坏主意,因为它是最慢的方法,特别是对于更大的应用程序。是否要根据错误类型拆分日志文件?你的版本是什么?
function write($type, $message){
        try {

               //Save In Db
        } catch (Exception $exc) {
//If the save in DB fails call log in fileLog(which has been defined in bootstrap.php)
            CakeLog::write('fileLog', "***************************\n".$exc."\n***************************\n");
        }     
}