codecamp

Blink错误与日志处理

Blink日志与错误处理

Blink日志

Blink 提供了一个构建在 Monolog 日志库之上、兼容 PSR-3 日志标准的日志服务组件。通过日志服务,我们可以轻松的把各种类型的消息记录到诸如文件、 数据库、邮件等媒介中。

为了记录日志消息,我们首先需要配置日志服务,下面是 Blink 的 seed 项目提供的默认日志配置:

'log' => [
    'class' => 'blink\log\Logger',
    'targets' => [
        'file' => [
            'class' => 'blink\log\StreamTarget',
            'enabled' => true,
            'stream' => 'php://stderr',
            'level' => 'info',
        ]
    ],
],

在这个例子中,我们定义了一个叫做 file 的媒介,目的是将所有消息级别小于或等于 INFO 的消息写入到 stderr中:

另外,获取日志服务和写日志也是很方便的,实例如下:

// 获取日志服务的实例
$log = app('log');

// emergency 日志类型,系统不可用
$log->emergency('my message');

// alert 日志类型,必要的措施必须马上采取
$log->alert('my message');

// critical 日志类型,危险条件触发
$log->critical('my message');

// error 日志类型,运行时错误
$log->error('my message');

// warning 日志类型,警告
$log->warning('my message');

// notice 日志类型,通常且值得注意的事件
$log->notice('my message');

// info 日志类型,记录感兴趣的事件
$log->info('my message');

// debug 日志类型,记录详细的调试信息
$log->debug('my message');

Blink错误处理

Blink 中,所有的 PHP 错误都会自动转换成 blink\core\ErrorException 异常,通过这个特性,我们可以用 try ... catch 来捕获 PHP 错误。

Blink 提供由 blink\core\ErrorHandler 类实现的 errorHandler 服务来处理 PHP 异常。默认情况下,errorHandler会把所有的异常上报给 log 服务,我们也可以实现自己的 errorHandler,采用不同的方式来处理这些异常,比如上报给 Sentry。

Blink授权与认证
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }