PageRenderTime 45ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/docs/zh-CN/3-4-error-and-logging.md

https://gitlab.com/lcp0578/blink
Markdown | 65 lines | 47 code | 18 blank | 0 comment | 0 complexity | a8bcf82ac12f8d658776deb248afaec1 MD5 | raw file
  1. 日志与错误处理
  2. ===========
  3. 日志
  4. ---
  5. Blink 提供了一个构建在 Monolog 日志库之上兼容 PSR-3 日志标准的日志服务组件通过日志服务我们可以轻松的把各种类型的消息记录到诸如文件
  6. 数据库邮件等媒介中
  7. 为了记录日志消息我们首先需要配置日志服务下面是 Blink seed 项目提供的默认日志配置
  8. ```php
  9. 'log' => [
  10. 'class' => 'blink\log\Logger',
  11. 'targets' => [
  12. 'file' => [
  13. 'class' => 'blink\log\StreamTarget',
  14. 'enabled' => true,
  15. 'stream' => 'php://stderr',
  16. 'level' => 'info',
  17. ]
  18. ],
  19. ],
  20. ```
  21. 在这个例子中我们定义了一个叫做 `file` 的媒介目的是将所有消息级别小于或等于 *INFO* 的消息写入到 `stderr`
  22. 另外获取日志服务和写日志也是很方便的实例如下
  23. ```php
  24. // 获取日志服务的实例
  25. $log = app('log');
  26. // emergency 日志类型,系统不可用
  27. $log->emergency('my message');
  28. // alert 日志类型,必要的措施必须马上采取
  29. $log->alert('my message');
  30. // critical 日志类型,危险条件触发
  31. $log->critical('my message');
  32. // error 日志类型,运行时错误
  33. $log->error('my message');
  34. // warning 日志类型,警告
  35. $log->warning('my message');
  36. // notice 日志类型,通常且值得注意的事件
  37. $log->notice('my message');
  38. // info 日志类型,记录感兴趣的事件
  39. $log->info('my message');
  40. // debug 日志类型,记录详细的调试信息
  41. $log->debug('my message');
  42. ```
  43. 错误处理
  44. -------
  45. Blink 所有的 PHP 错误都会自动转换成 `blink\core\ErrorException` 异常通过这个特性我们可以用 try ... catch 来捕获 PHP 错误
  46. Blink 提供由 `blink\core\ErrorHandler` 类实现的 `errorHandler` 服务来处理 PHP 异常默认情况下`errorHandler` 会把所有的异常上报给
  47. `log` 服务我们也可以实现自己的 `errorHandler`采用不同的方式来处理这些异常比如上报给 Sentry