src/log4php/configurators/LoggerConfigurationAdapterINI.php
private function parseAppender($key, $value) {

		// Remove the appender prefix from key
		$subKey = substr($key, strlen(self::APPENDER_PREFIX));
		
		// Divide the string by dots
		$parts = explode('.', $subKey);
		$count = count($parts);
		
		// The first part is always the appender name
		$name = trim($parts[0]);
		
		// Only one part - this line defines the appender class 
		if ($count == 1) {
			$this->config['appenders'][$name]['class'] = $value;
			return;
		}
		
		// Two parts - either a parameter, a threshold or layout class
		else if ($count == 2) {
			
			if ($parts[1] == 'layout') {
				$this->config['appenders'][$name]['layout']['class'] = $value;
				return;
			} else if ($parts[1] == 'threshold') {
				$this->config['appenders'][$name]['threshold'] = $value;
				return;
			} else {
				$this->config['appenders'][$name]['params'][$parts[1]] = $value;
				return;
			}
		}
		
		// Three parts - this can only be a layout parameter
		else if ($count == 3) {
			if ($parts[1] == 'layout') {
				$this->config['appenders'][$name]['layout']['params'][$parts[2]] = $value;
				return;
			}
		}
		
		trigger_error("log4php: Don't know how to parse the following line: \"$key = $value\". Skipping.");
	}
private function parseAppender($key, $value) {

		// Remove the appender prefix from key
		$subKey = substr($key, strlen(self::APPENDER_PREFIX));
		
		// Divide the string by dots
		$parts = explode('.', $subKey);
		$count = count($parts);
		
		// The first part is always the appender name
		$name = trim($parts[0]);
		
		// Only one part - this line defines the appender class 
		if ($count == 1) {
			$this->config['appenders'][$name]['class'] = $value;
			return;
		}
		
		// Two parts - either a parameter, a threshold or layout class
		else if ($count == 2) {
			
			if ($parts[1] == 'layout') {
				$this->config['appenders'][$name]['layout']['class'] = $value;
				return;
			} else if ($parts[1] == 'threshold') {
				$this->config['appenders'][$name]['threshold'] = $value;
				return;
			} else {
				$this->config['appenders'][$name]['params'][$parts[1]] = $value;
				return;
			}
		}
		
		// Three parts - this can only be a layout parameter
		else if ($count == 3) {
			if ($parts[1] == 'layout') {
				$this->config['appenders'][$name]['layout']['params'][$parts[2]] = $value;
				return;
			}
		}
		
		trigger_error("log4php: Don't know how to parse the following line: \"$key = $value\". Skipping.");
	}
Parses an configuration line pertaining to an appender.

Parses the following patterns:

Appender class:
<pre>
log4php.appender.<name> = <class>
</pre>

Appender parameter:
<pre>
log4php.appender.<name>.<param> = <value>
</pre>

Appender threshold:
<pre>
log4php.appender.<name>.threshold = <level>
</pre>

Appender layout:
<pre>
log4php.appender.<name>.layout = <layoutClass>
</pre>

Layout parameter:
<pre>
log4php.appender.<name>.layout.<param> = <value>
</pre>

For example, a full appender config might look like:
<pre>
log4php.appender.myAppender = LoggerAppenderConsole
log4php.appender.myAppender.threshold = info
log4php.appender.myAppender.target = stdout
log4php.appender.myAppender.layout = LoggerLayoutPattern
log4php.appender.myAppender.layout.conversionPattern = "%d %c: %m%n"
</pre>

After parsing all these options, the following configuration can be
found under $this->config['appenders']['myAppender']:
<pre>
array(
'class' => LoggerAppenderConsole,
'threshold' => info,
'params' => array(
'target' => 'stdout'
),
'layout' => array(
'class' => 'LoggerAppenderConsole',
'params' => array(
'conversionPattern' => '%d %c: %m%n'
)
)
)
</pre>

@param string $key
@param string $value