You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ih...@apache.org on 2013/12/14 15:14:48 UTC

git commit: LOG4PHP-204: added support for MDC context in mongo appender.

Updated Branches:
  refs/heads/develop 1b558631d -> 4e7dd2157


LOG4PHP-204: added support for MDC context in mongo appender.

Signed-off-by: Vladimir Gorej <go...@codescale.net>
Signed-off-by: Ivan Habunek <ih...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/logging-log4php/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4php/commit/4e7dd215
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4php/tree/4e7dd215
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4php/diff/4e7dd215

Branch: refs/heads/develop
Commit: 4e7dd2157e7322ba538d0fe805352ff639d14abe
Parents: 1b55863
Author: Vladimir Gorej <go...@codescale.net>
Authored: Fri Jun 21 11:29:39 2013 +0200
Committer: Ivan Habunek <ih...@apache.org>
Committed: Sat Dec 14 14:39:14 2013 +0100

----------------------------------------------------------------------
 .../php/appenders/LoggerAppenderMongoDB.php     | 21 ++++++++++---------
 .../php/appenders/LoggerAppenderMongoDBTest.php | 22 ++++++++++++++++++++
 2 files changed, 33 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4php/blob/4e7dd215/src/main/php/appenders/LoggerAppenderMongoDB.php
----------------------------------------------------------------------
diff --git a/src/main/php/appenders/LoggerAppenderMongoDB.php b/src/main/php/appenders/LoggerAppenderMongoDB.php
index 7486ded..f327378 100644
--- a/src/main/php/appenders/LoggerAppenderMongoDB.php
+++ b/src/main/php/appenders/LoggerAppenderMongoDB.php
@@ -265,8 +265,9 @@ class LoggerAppenderMongoDB extends LoggerAppender {
 			# Connection string generation.
 			if ($this->connectionString === null) {
 				$connectionString = sprintf('%s%s:%d', self::DEFAULT_MONGO_URL_PREFIX,
-							    preg_replace('/^'.preg_quote(self::DEFAULT_MONGO_URL_PREFIX, '/').'/', '', $this->host),
-							    $this->port);
+											preg_replace('/^'.preg_quote(self::DEFAULT_MONGO_URL_PREFIX, '/').'/',
+														 '', $this->host),
+											$this->port);
 			} else {
 				$connectionString = $this->connectionString;
 			}
@@ -313,7 +314,8 @@ class LoggerAppenderMongoDB extends LoggerAppender {
 
 	/**
 	 * Converts the logging event into an array which can be logged to mongodb.
-	 * 
+	 * Note that MDC context keys that are the same as mongo appender default keys will be overridden.
+	 *
 	 * @param LoggerLoggingEvent $event
 	 * @return array The array representation of the logging event.
 	 */
@@ -321,13 +323,12 @@ class LoggerAppenderMongoDB extends LoggerAppender {
 		$timestampSec = (int) $event->getTimestamp();
 		$timestampUsec = (int) (($event->getTimestamp() - $timestampSec) * 1000000);
 
-		$document = array(
-			'timestamp' => new MongoDate($timestampSec, $timestampUsec),
-			'level' => $event->getLevel()->toString(),
-			'thread' => (int) $event->getThreadName(),
-			'message' => $event->getMessage(),
-			'loggerName' => $event->getLoggerName() 
-		);	
+		$document = LoggerMDC::getMap();
+		$document['timestamp'] = new MongoDate($timestampSec, $timestampUsec);
+		$document['level'] = $event->getLevel()->toString();
+		$document['thread'] = (int) $event->getThreadName();
+		$document['message'] = $event->getMessage();
+		$document['loggerName'] = $event->getLoggerName();
 
 		$locationInfo = $event->getLocationInformation();
 		if ($locationInfo != null) {

http://git-wip-us.apache.org/repos/asf/logging-log4php/blob/4e7dd215/src/test/php/appenders/LoggerAppenderMongoDBTest.php
----------------------------------------------------------------------
diff --git a/src/test/php/appenders/LoggerAppenderMongoDBTest.php b/src/test/php/appenders/LoggerAppenderMongoDBTest.php
index 7bdf0f2..db4acf8 100644
--- a/src/test/php/appenders/LoggerAppenderMongoDBTest.php
+++ b/src/test/php/appenders/LoggerAppenderMongoDBTest.php
@@ -55,6 +55,7 @@ class LoggerAppenderMongoDBTest extends PHPUnit_Framework_TestCase {
 			}
 		}
 		unset($this->appender);
+		LoggerMDC::clear();
 	}
 
 	public function testConnectionString() {
@@ -215,6 +216,27 @@ class LoggerAppenderMongoDBTest extends PHPUnit_Framework_TestCase {
 		$this->assertTrue(is_int($record['thread']));
 		$this->assertSame(getmypid(), $record['thread']);
 		$this->assertTrue(is_int($record['lineNumber']) || $record['lineNumber'] == 'NA');
+		$this->assertEquals(10, count($record));
+	}
+
+	public function testFormatMDC() {
+		$this->appender->activateOptions();
+		LoggerMDC::put('extra_data', 'extra data');
+		$record = $this->logOne($this->event);
+		$this->assertEquals(1, count(LoggerMDC::getMap()));
+		$this->assertEquals(11, count($record));
+		$this->assertArrayHasKey('extra_data', $record);
+		$this->assertEquals('extra data', $record['extra_data']);
+	}
+
+	public function testFormatMDCOverride() {
+		$this->appender->activateOptions();
+		LoggerMDC::put('fileName', 'extra data');
+		$record = $this->logOne($this->event);
+		$this->assertEquals(1, count(LoggerMDC::getMap()));
+		$this->assertEquals(10, count($record));
+		$this->assertArrayHasKey('fileName', $record);
+		$this->assertEquals('NA', $record['fileName']);
 	}
 
 	public function testFormatThrowableInfo() {