You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4php-dev@logging.apache.org by ih...@apache.org on 2011/06/19 23:50:31 UTC

svn commit: r1137454 - /logging/log4php/trunk/src/main/php/appenders/LoggerAppenderMongoDB.php

Author: ihabunek
Date: Sun Jun 19 21:50:30 2011
New Revision: 1137454

URL: http://svn.apache.org/viewvc?rev=1137454&view=rev
Log:
LOG4PHP-110: Added API documentation to the mongodb appender. Minor cosmetic changes to the code.

Modified:
    logging/log4php/trunk/src/main/php/appenders/LoggerAppenderMongoDB.php

Modified: logging/log4php/trunk/src/main/php/appenders/LoggerAppenderMongoDB.php
URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/appenders/LoggerAppenderMongoDB.php?rev=1137454&r1=1137453&r2=1137454&view=diff
==============================================================================
--- logging/log4php/trunk/src/main/php/appenders/LoggerAppenderMongoDB.php (original)
+++ logging/log4php/trunk/src/main/php/appenders/LoggerAppenderMongoDB.php Sun Jun 19 21:50:30 2011
@@ -32,47 +32,92 @@
  * @since 2.1
  */
 class LoggerAppenderMongoDB extends LoggerAppender {
-		
+	
+	// ******************************************
+	// ** Constants                            **
+	// ******************************************
+	
+	/** Default prefix for the {@link $host}. */	
 	const DEFAULT_MONGO_URL_PREFIX = 'mongodb://';
+	
+	/** Default value for {@link $host}, without a prefix. */
 	const DEFAULT_MONGO_HOST = 'localhost';
+	
+	/** Default value for {@link $port} */
 	const DEFAULT_MONGO_PORT = 27017;
+	
+	/** Default value for {@link $databaseName} */
 	const DEFAULT_DB_NAME = 'log4php_mongodb';
+	
+	/** Default value for {@link $collectionName} */
 	const DEFAULT_COLLECTION_NAME = 'logs';
 	
-	protected $hostname;
+	// ******************************************
+	// ** Configurable parameters              **
+	// ******************************************
+	
+	/** Server on which mongodb instance is located. */
+	protected $host;
+	
+	/** Port on which the instance is bound. */
 	protected $port;
-	protected $dbName;
-	protected $collectionName;
 	
-	protected $connection;
-	protected $collection;
-		
+	/** Name of the database to which to log. */
+	protected $databaseName;
+	
+	/** Name of the collection within the given database. */
+	protected $collectionName;
+			
+	/** Username used to connect to the database. */
 	protected $userName;
+	
+	/** Password used to connect to the database. */
 	protected $password;
 	
+	// ******************************************
+	// ** Member variables                     **
+	// ******************************************
+
+	/** 
+	 * Connection to the MongoDB instance.
+	 * @var Mongo
+	 */
+	protected $connection;
+	
+	/** 
+	 * The collection to which log is written. 
+	 * @var MongoCollection
+	 */
+	protected $collection;
+
+	/** 
+	 * Set to true if the appender can append. 
+	 * @todo Maybe we should use $closed here instead? 
+	 */
 	protected $canAppend = false;
 	
+	/** Appender does not require a layout. */
 	protected $requiresLayout = false;
 		
 	public function __construct($name = '') {
 		parent::__construct($name);
-		$this->hostname         = self::DEFAULT_MONGO_URL_PREFIX.self::DEFAULT_MONGO_HOST;
-		$this->port             = self::DEFAULT_MONGO_PORT;
-		$this->dbName           = self::DEFAULT_DB_NAME;
-		$this->collectionName   = self::DEFAULT_COLLECTION_NAME;
+		$this->host = self::DEFAULT_MONGO_URL_PREFIX . self::DEFAULT_MONGO_HOST;
+		$this->port = self::DEFAULT_MONGO_PORT;
+		$this->databaseName = self::DEFAULT_DB_NAME;
+		$this->collectionName = self::DEFAULT_COLLECTION_NAME;
 	}
 	
 	/**
 	 * Setup db connection.
-	 * Based on defined options, this method connects to db defined in {@link $dbNmae}
-	 * and creates a {@link $collection} 
-	 * @return boolean true if all ok.
-	 * @throws an Exception if the attempt to connect to the requested database fails.
+	 * Based on defined options, this method connects to the database and 
+	 * creates a {@link $collection}. 
+	 *  
+	 * @throws Exception if the attempt to connect to the requested database fails.
 	 */
 	public function activateOptions() {
 		try {
-			$this->connection = new Mongo(sprintf('%s:%d', $this->hostname, $this->port));
-			$db	= $this->connection->selectDB($this->dbName);
+			$this->connection = new Mongo(sprintf('%s:%d', $this->host, $this->port));
+			$db	= $this->connection->selectDB($this->databaseName);
 			if ($this->userName !== null && $this->password !== null) {
 				$authResult = $db->authenticate($this->userName, $this->password);
 				if ($authResult['ok'] == floatval(0)) {
@@ -87,13 +132,12 @@ class LoggerAppenderMongoDB extends Logg
 		} 
 			
 		$this->canAppend = true;
-		return true;
 	}		 
 	
 	/**
 	 * Appends a new event to the mongo database.
 	 * 
-	 * @throws LoggerException	If the pattern conversion or the INSERT statement fails.
+	 * @throws LoggerException If the pattern conversion or the INSERT statement fails.
 	 */
 	public function append(LoggerLoggingEvent $event) {
 		if ($this->canAppend == true && $this->collection != null) {
@@ -106,7 +150,7 @@ class LoggerAppenderMongoDB extends Logg
 	 * Converts the logging event into an array which can be logged to mongodb.
 	 * 
 	 * @param LoggerLoggingEvent $event
-	 * @return array
+	 * @return array The array representation of the logging event.
 	 */
 	protected function format(LoggerLoggingEvent $event) {
 		$timestampSec  = (int) $event->getTimestamp();
@@ -171,66 +215,86 @@ class LoggerAppenderMongoDB extends Logg
 			$this->closed = true;
 		}
 	}
-		
+	
 	public function __destruct() {
 		$this->close();
 	}
 	
-	public function setHost($hostname) {
-		if (!preg_match('/^mongodb\:\/\//', $hostname)) {
-			$hostname = self::DEFAULT_MONGO_URL_PREFIX.$hostname;
+	/** Sets the value of {@link $host} parameter. */
+	public function setHost($host) {
+		if (!preg_match('/^mongodb\:\/\//', $host)) {
+			$host = self::DEFAULT_MONGO_URL_PREFIX . $host;
 		}			
-		$this->hostname = $hostname;				
+		$this->host = $host;				
 	}
 		
+	/** Returns the value of {@link $host} parameter. */
 	public function getHost() {
-		return $this->hostname;
+		return $this->host;
 	}
 		
+	/** Sets the value of {@link $port} parameter. */
 	public function setPort($port) {
 		$this->port = $port;
 	}
 		
+	/** Returns the value of {@link $port} parameter. */
 	public function getPort() {
 		return $this->port;
 	}
 		
-	public function setDatabaseName($dbName) {
-		$this->dbName = $dbName;
+	/** Sets the value of {@link $databaseName} parameter. */
+	public function setDatabaseName($databaseName) {
+		$this->databaseName = $databaseName;
 	}
 		
+	/** Returns the value of {@link $databaseName} parameter. */
 	public function getDatabaseName() {
-		return $this->dbName;
+		return $this->databaseName;
 	}
-		
+	
+	/** Sets the value of {@link $collectionName} parameter. */
 	public function setCollectionName($collectionName) {
 		$this->collectionName = $collectionName;
 	}
 		
+	/** Returns the value of {@link $collectionName} parameter. */
 	public function getCollectionName() {
 		return $this->collectionName;
 	}
 		
+	/** Sets the value of {@link $userName} parameter. */
 	public function setUserName($userName) {
 		$this->userName = $userName;
 	}
-		
+	
+	/** Returns the value of {@link $userName} parameter. */
 	public function getUserName() {
 		return $this->userName;
 	}
 		
+	/** Sets the value of {@link $password} parameter. */
 	public function setPassword($password) {
 		$this->password = $password;
 	}
 		
+	/** Returns the value of {@link $password} parameter. */
 	public function getPassword() {
 		return $this->password;
 	}
 	
+	/** 
+	 * Returns the mongodb connection.
+	 * @return Mongo
+	 */
 	public function getConnection() {
 		return $this->connection;
 	}
 	
+	/** 
+	 * Returns the active mongodb collection.
+	 * @return MongoCollection
+	 */
 	public function getCollection() {
 		return $this->collection;
 	}