summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Monolog/Formatter/NormalizerFormatter.php14
-rw-r--r--src/Monolog/Handler/RotatingFileHandler.php2
-rw-r--r--src/Monolog/Handler/SlackHandler.php14
-rw-r--r--tests/Monolog/Formatter/NormalizerFormatterTest.php27
-rw-r--r--tests/Monolog/Handler/SlackHandlerTest.php18
5 files changed, 70 insertions, 5 deletions
diff --git a/src/Monolog/Formatter/NormalizerFormatter.php b/src/Monolog/Formatter/NormalizerFormatter.php
index fcac4a6..d4eb1af 100644
--- a/src/Monolog/Formatter/NormalizerFormatter.php
+++ b/src/Monolog/Formatter/NormalizerFormatter.php
@@ -132,6 +132,20 @@ class NormalizerFormatter implements FormatterInterface
'file' => $e->getFile().':'.$e->getLine(),
];
+ if ($e instanceof \SoapFault) {
+ if (isset($e->faultcode)) {
+ $data['faultcode'] = $e->faultcode;
+ }
+
+ if (isset($e->faultactor)) {
+ $data['faultactor'] = $e->faultactor;
+ }
+
+ if (isset($e->detail)) {
+ $data['detail'] = $e->detail;
+ }
+ }
+
$trace = $e->getTrace();
foreach ($trace as $frame) {
if (isset($frame['file'])) {
diff --git a/src/Monolog/Handler/RotatingFileHandler.php b/src/Monolog/Handler/RotatingFileHandler.php
index 39e4393..a4a5ba4 100644
--- a/src/Monolog/Handler/RotatingFileHandler.php
+++ b/src/Monolog/Handler/RotatingFileHandler.php
@@ -72,7 +72,7 @@ class RotatingFileHandler extends StreamHandler
if (!preg_match('{^Y(([/_.-]?m)([/_.-]?d)?)?$}', $dateFormat)) {
throw new InvalidArgumentException(
'Invalid date format - format must be one of '.
- 'RotatingFileHandler::FILE_PER_DAY ("Y-m-d"), RotatingFileHandler::FILE_PER_MONTH ("Y-m")'.
+ 'RotatingFileHandler::FILE_PER_DAY ("Y-m-d"), RotatingFileHandler::FILE_PER_MONTH ("Y-m") '.
'or RotatingFileHandler::FILE_PER_YEAR ("Y"), or you can set one of the '.
'date formats using slashes, underscores and/or dots instead of dashes.'
);
diff --git a/src/Monolog/Handler/SlackHandler.php b/src/Monolog/Handler/SlackHandler.php
index a5db721..f307389 100644
--- a/src/Monolog/Handler/SlackHandler.php
+++ b/src/Monolog/Handler/SlackHandler.php
@@ -144,19 +144,25 @@ class SlackHandler extends SocketHandler
'attachments' => [],
];
+ if ($this->formatter) {
+ $message = $this->formatter->format($record);
+ } else {
+ $message = $record['message'];
+ }
+
if ($this->useAttachment) {
$attachment = [
- 'fallback' => $record['message'],
+ 'fallback' => $message,
'color' => $this->getAttachmentColor($record['level']),
'fields' => [],
];
if ($this->useShortAttachment) {
$attachment['title'] = $record['level_name'];
- $attachment['text'] = $record['message'];
+ $attachment['text'] = $message;
} else {
$attachment['title'] = 'Message';
- $attachment['text'] = $record['message'];
+ $attachment['text'] = $message;
$attachment['fields'][] = [
'title' => 'Level',
'value' => $record['level_name'],
@@ -206,7 +212,7 @@ class SlackHandler extends SocketHandler
$dataArray['attachments'] = json_encode([$attachment]);
} else {
- $dataArray['text'] = $record['message'];
+ $dataArray['text'] = $message;
}
if ($this->iconEmoji) {
diff --git a/tests/Monolog/Formatter/NormalizerFormatterTest.php b/tests/Monolog/Formatter/NormalizerFormatterTest.php
index 2b2d7c7..6cb53ef 100644
--- a/tests/Monolog/Formatter/NormalizerFormatterTest.php
+++ b/tests/Monolog/Formatter/NormalizerFormatterTest.php
@@ -85,6 +85,33 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase
], $formatted);
}
+ public function testFormatSoapFaultException()
+ {
+ if (!class_exists('SoapFault')) {
+ $this->markTestSkipped('Requires the soap extension');
+ }
+
+ $formatter = new NormalizerFormatter('Y-m-d');
+ $e = new \SoapFault('foo', 'bar', 'hello', 'world');
+ $formatted = $formatter->format(array(
+ 'exception' => $e,
+ ));
+
+ unset($formatted['exception']['trace']);
+
+ $this->assertEquals(array(
+ 'exception' => array(
+ 'class' => 'SoapFault',
+ 'message' => 'bar',
+ 'code' => 0,
+ 'file' => $e->getFile().':'.$e->getLine(),
+ 'faultcode' => 'foo',
+ 'faultactor' => 'hello',
+ 'detail' => 'world',
+ ),
+ ), $formatted);
+ }
+
public function testFormatToStringExceptionHandle()
{
$formatter = new NormalizerFormatter('Y-m-d');
diff --git a/tests/Monolog/Handler/SlackHandlerTest.php b/tests/Monolog/Handler/SlackHandlerTest.php
index d42c19b..e696ecb 100644
--- a/tests/Monolog/Handler/SlackHandlerTest.php
+++ b/tests/Monolog/Handler/SlackHandlerTest.php
@@ -13,6 +13,7 @@ namespace Monolog\Handler;
use Monolog\Test\TestCase;
use Monolog\Logger;
+use Monolog\Formatter\LineFormatter;
/**
* @author Greg Kedzierski <greg@gregkedzierski.com>
@@ -57,6 +58,23 @@ class SlackHandlerTest extends TestCase
$this->assertRegexp('/token=myToken&channel=channel1&username=Monolog&text=&attachments=.*$/', $content);
}
+ public function testWriteContentUsesFormatterIfProvided()
+ {
+ $this->createHandler('myToken', 'channel1', 'Monolog', false);
+ $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));
+ fseek($this->res, 0);
+ $content = fread($this->res, 1024);
+
+ $this->createHandler('myToken', 'channel1', 'Monolog', false);
+ $this->handler->setFormatter(new LineFormatter('foo--%message%'));
+ $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test2'));
+ fseek($this->res, 0);
+ $content2 = fread($this->res, 1024);
+
+ $this->assertRegexp('/token=myToken&channel=channel1&username=Monolog&text=test1.*$/', $content);
+ $this->assertRegexp('/token=myToken&channel=channel1&username=Monolog&text=foo--test2.*$/', $content2);
+ }
+
public function testWriteContentWithEmoji()
{
$this->createHandler('myToken', 'channel1', 'Monolog', true, 'alien');