1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-06 21:26:43 +02:00

Optimize ChromePHP/FirePHP to skip header generation when they are disabled, refs #360

This commit is contained in:
Jordi Boggiano
2014-04-23 15:56:51 +02:00
parent fe226bf15b
commit 7567cecfa5
4 changed files with 21 additions and 6 deletions

View File

@@ -100,15 +100,19 @@ class ChromePHPHandler extends AbstractProcessingHandler
*/ */
protected function send() protected function send()
{ {
if (self::$overflowed) { if (self::$overflowed || !self::$sendHeaders) {
return; return;
} }
if (!self::$initialized) { if (!self::$initialized) {
self::$sendHeaders = $this->headersAccepted();
self::$json['request_uri'] = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
self::$initialized = true; self::$initialized = true;
self::$sendHeaders = $this->headersAccepted();
if (!self::$sendHeaders) {
return;
}
self::$json['request_uri'] = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
} }
$json = @json_encode(self::$json); $json = @json_encode(self::$json);

View File

@@ -131,15 +131,22 @@ class FirePHPHandler extends AbstractProcessingHandler
*/ */
protected function write(array $record) protected function write(array $record)
{ {
if (!self::$sendHeaders) {
return;
}
// WildFire-specific headers must be sent prior to any messages // WildFire-specific headers must be sent prior to any messages
if (!self::$initialized) { if (!self::$initialized) {
self::$initialized = true;
self::$sendHeaders = $this->headersAccepted(); self::$sendHeaders = $this->headersAccepted();
if (!self::$sendHeaders) {
return;
}
foreach ($this->getInitHeaders() as $header => $content) { foreach ($this->getInitHeaders() as $header => $content) {
$this->sendHeader($header, $content); $this->sendHeader($header, $content);
} }
self::$initialized = true;
} }
$header = $this->createRecordHeader($record); $header = $this->createRecordHeader($record);

View File

@@ -22,6 +22,7 @@ class ChromePHPHandlerTest extends TestCase
protected function setUp() protected function setUp()
{ {
TestChromePHPHandler::reset(); TestChromePHPHandler::reset();
$_SERVER['HTTP_USER_AGENT'] = 'Monolog Test; Chrome/1.0';
} }
public function testHeaders() public function testHeaders()
@@ -124,6 +125,7 @@ class TestChromePHPHandler extends ChromePHPHandler
{ {
self::$initialized = false; self::$initialized = false;
self::$overflowed = false; self::$overflowed = false;
self::$sendHeaders = true;
self::$json['rows'] = array(); self::$json['rows'] = array();
} }

View File

@@ -22,6 +22,7 @@ class FirePHPHandlerTest extends TestCase
public function setUp() public function setUp()
{ {
TestFirePHPHandler::reset(); TestFirePHPHandler::reset();
$_SERVER['HTTP_USER_AGENT'] = 'Monolog Test; FirePHP/1.0';
} }
public function testHeaders() public function testHeaders()
@@ -79,6 +80,7 @@ class TestFirePHPHandler extends FirePHPHandler
public static function reset() public static function reset()
{ {
self::$initialized = false; self::$initialized = false;
self::$sendHeaders = true;
self::$messageIndex = 1; self::$messageIndex = 1;
} }