Skip to content
This repository has been archived by the owner on Jan 11, 2019. It is now read-only.

Commit

Permalink
Merge pull request #11 from chekun/feature/support-sae-log
Browse files Browse the repository at this point in the history
加入对sae log的支持
  • Loading branch information
Che Kun committed Apr 27, 2014
2 parents 8d337f4 + 55d2c14 commit 054218f
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
/vendor/
.idea
2 changes: 2 additions & 0 deletions HOW-TO.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ if (defined('SAE_ACCESSKEY') && (substr(SAE_ACCESSKEY, 0, 4 ) != 'kapp')) {
'Illuminate\Cache\CacheServiceProvider',
'Illuminate\View\ViewServiceProvider',
'Illuminate\Session\SessionServiceProvider',
'Illuminate\Log\LogServiceProvider'
);
foreach ($app['providers'] as $key => $provider) {
Expand All @@ -145,6 +146,7 @@ if (defined('SAE_ACCESSKEY') && (substr(SAE_ACCESSKEY, 0, 4 ) != 'kapp')) {
}
$app['providers'] = array_merge($app['providers'], array(
'Lavender\Cloud\Sina\Log\LogServiceProvider',
'Lavender\Cloud\Sina\Cache\CacheServiceProvider',
'Lavender\Cloud\Sina\Storage\StorageServiceProvider',
'Lavender\Cloud\Sina\View\ViewServiceProvider',
Expand Down
25 changes: 25 additions & 0 deletions src/Lavender/Cloud/Sina/Log/LogServiceProvider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php namespace Lavender\Cloud\Sina\Log;

use Monolog\Logger;
use Illuminate\Log\LogServiceProvider as IlluminateLogServiceProvider;

class LogServiceProvider extends IlluminateLogServiceProvider {

public function register()
{
$logger = new Writer(
new Logger($this->app['env']), $this->app['events']
);

$this->app->instance('log', $logger);

// If the setup Closure has been bound in the container, we will resolve it
// and pass in the logger instance. This allows this to defer all of the
// logger class setup until the last possible second, improving speed.
if (isset($this->app['log.setup']))
{
call_user_func($this->app['log.setup'], $logger);
}
}

}
15 changes: 15 additions & 0 deletions src/Lavender/Cloud/Sina/Log/SaeLogHandler.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?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']);
}

}
35 changes: 35 additions & 0 deletions src/Lavender/Cloud/Sina/Log/Writer.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php namespace Lavender\Cloud\Sina\Log;

use Illuminate\Log\Writer as IlluminateLogWriter;
use Monolog\Formatter\LineFormatter;
use Lavender\Cloud\Sina\Log\SaeLogHandler;
use Config;

class Writer extends IlluminateLogWriter {

protected function useSaeLog($level = 'debug')
{
$level = $this->parseLevel($level);
$this->monolog->pushHandler($handler = new SaeLogHandler($level));
$handler->setFormatter(new LineFormatter(null, null, true));
}

public function useFiles($path, $level = 'debug')
{
if (Config::get('app.sae')) {
return $this->useSaeLog($level);
}

parent::userFiles($path, $level);
}

public function useDailyFiles($path, $days = 0, $level = 'debug')
{
if (Config::get('app.sae')) {
return $this->useSaeLog($level);
}

parent::useDailyFiles($path, $days, $level);
}

}

0 comments on commit 054218f

Please sign in to comment.