2019-06-05 09:23:45 1955次浏览 2条回答 1 悬赏 10 金钱

QQ图片20190605092125.png

线上有一个表不存在,然后如果开了debug,会报这样的错(这个错误是我线下测出来的)

但是线上没开debug,如果下次出现这个样的问题,我该怎么去找日志呢?

萌新求指点!!!

补充于 2019-06-05 10:35

总结问题就是:关闭debug的情况下,怎么获取exception报错?

补充于 2019-06-05 11:15

翻遍了网上的各种教程,最后终于找到答案了

什么情况下log日志会记录?是yii2原生的代码里写了:Yii::error();这种类似的打日志的代码,或者你自己在自己的业务逻辑里写Yii::error()

不然都会有log日志

而我这个问题,其实还没涉及到日志层面,因为只是一个exception,是一个报错,至于这个错误你到底写不写到日志里,那是需要你动手操作的。

所以我看了下错误处理,里面有一个errorHandler,组件里面配置

    'errorHandler' => [
          'errorAction' => 'site/error',
      ]

这样之后,每次exception报错,都会去到site控制器,actionArror方法,去渲染错误页面,在这个action里面

Yii::error(Yii::$app->errorHandler->exception->getMessage());

捕获异常,记录到日志上即可

这样,凡是出现了异常,如果开了debug,就直接给你抛出了异常页面,如题中的截图
如果关闭了debug,就会把这个exception的内容记录到日志里面去。

完结,撒花!!

  • 回答于 2019-06-05 10:12 举报

    可以尝试在 runtime\logs\app.log 日志文件中查找

    1 条回复
    回复于 2019-06-05 10:34 回复

    这里面找过了,没有,这个是一个Exception 不是日志,关闭debug就开不到Exception 了

  • 回答于 2019-06-05 10:41 举报

    配置了log的话还有会记录的

您需要登录后才可以回答。登录 | 立即注册
沃毕尼闷兜率
助理

沃毕尼闷兜率

注册时间:2017-05-08
最后登录:2020-01-06
在线时长:11小时20分
  • 粉丝1
  • 金钱30
  • 威望0
  • 积分140

热门问题