如果我记录异常会怎么样?例如:
Yii::error(new Exception('test'));
目前我的基本应用程序模板没有任何反应。没有记录任何内容(进一步的error()调用也不记录)。它是否正确?配置是:
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
我原本以为异常会被适当记录。我应该如何记录异常,尤其是如果我想看到痕迹?
更新
请参阅GitHub上的Issue。使用Yii 2.0.6可以记录异常。
如果您捕获异常并抛出另一个异常,这可能很有用。然后您可以记录原始问题。但是,如果您抛出基于Yii异常的异常,您通常(或始终?)将原始异常附加为$previous
。如果不能在任何地方捕获,则会自动记录前一个例外。
答案 0 :(得分:5)
我相信,你的配置是正确的。
但是,您不需要Yii::error()
覆盖您的例外情况。记录错误有两种基本方法:
1)只是抛出任何异常:
throw new \Exception("My error message #1");
2)使用Yii::error()
Yii::error("My error message #2");
不同之处在于,您将悄悄地将第二条消息放入日志而不会停止您的应用程序。
答案 1 :(得分:0)