Laravel4SAE v1.1.0发布,增加对Log的支持
Laravel4sae 是我专门为让laravel4完美运行在新浪sae上做的开源项目。
详细介绍可以看我发布的 【在 SAE 上运行 Laravel 4】
{% githubCard chekun laravel4sae %}
v1.0.x完成对基础模块的兼容,今天对Log进行适配。
- SAE上不支持对本地文件的读写,但提供了sae_debug函数。
- Laravel4对于日志的处理在Illuminate/Log包。
- Illuminate/Log包基于Monolog。
在Laravel4中,实际上使用了Monolog中两种写日志的handler.
/**
* Register a file log handler.
*
* @param string $path
* @param string $level
* @return void
*/
public function useFiles($path, $level = 'debug')
{
$level = $this->parseLevel($level);
$this->monolog->pushHandler($handler = new StreamHandler($path, $level));
$handler->setFormatter(new LineFormatter(null, null, true));
}
/**
* Register a daily file log handler.
*
* @param string $path
* @param int $days
* @param string $level
* @return void
*/
public function useDailyFiles($path, $days = 0, $level = 'debug')
{
$level = $this->parseLevel($level);
$this->monolog->pushHandler($handler = new RotatingFileHandler($path, $days, $level));
$handler->setFormatter(new LineFormatter(null, null, true));
}
让Laravel支持sae的日志,也就变得很简单了,只需要增加一个Handler即可。
<?php namespace Lavender\Cloud\Sina\Log;
use Monolog\Handler\AbstractProcessingHandler;
class SaeLogHandler extends AbstractProcessingHandler {
/**
* {@inheritdoc}
*/
protected function write(array $record)
{
sae_debug((string) $record['formatted']);
}
}
没错,就是这么简单。
而且,仅需要在config/app.php中加入以下两行.
详细使用教程参阅:https://github.com/chekun/laravel4sae/blob/master/HOW-TO.md