'LoggerPatternConverterLogger', 'lo' => 'LoggerPatternConverterLogger', 'logger' => 'LoggerPatternConverterLogger', 'C' => 'LoggerPatternConverterClass', 'class' => 'LoggerPatternConverterClass', 'cookie' => 'LoggerPatternConverterCookie', 'd' => 'LoggerPatternConverterDate', 'date' => 'LoggerPatternConverterDate', 'e' => 'LoggerPatternConverterEnvironment', 'env' => 'LoggerPatternConverterEnvironment', 'ex' => 'LoggerPatternConverterThrowable', 'exception' => 'LoggerPatternConverterThrowable', 'throwable' => 'LoggerPatternConverterThrowable', 'F' => 'LoggerPatternConverterFile', 'file' => 'LoggerPatternConverterFile', 'l' => 'LoggerPatternConverterLocation', 'location' => 'LoggerPatternConverterLocation', 'L' => 'LoggerPatternConverterLine', 'line' => 'LoggerPatternConverterLine', 'm' => 'LoggerPatternConverterMessage', 'msg' => 'LoggerPatternConverterMessage', 'message' => 'LoggerPatternConverterMessage', 'M' => 'LoggerPatternConverterMethod', 'method' => 'LoggerPatternConverterMethod', 'n' => 'LoggerPatternConverterNewLine', 'newline' => 'LoggerPatternConverterNewLine', 'p' => 'LoggerPatternConverterLevel', 'le' => 'LoggerPatternConverterLevel', 'level' => 'LoggerPatternConverterLevel', 'r' => 'LoggerPatternConverterRelative', 'relative' => 'LoggerPatternConverterRelative', 'req' => 'LoggerPatternConverterRequest', 'request' => 'LoggerPatternConverterRequest', 's' => 'LoggerPatternConverterServer', 'server' => 'LoggerPatternConverterServer', 'ses' => 'LoggerPatternConverterSession', 'session' => 'LoggerPatternConverterSession', 'sid' => 'LoggerPatternConverterSessionID', 'sessionid' => 'LoggerPatternConverterSessionID', 't' => 'LoggerPatternConverterProcess', 'pid' => 'LoggerPatternConverterProcess', 'process' => 'LoggerPatternConverterProcess', 'x' => 'LoggerPatternConverterNDC', 'ndc' => 'LoggerPatternConverterNDC', 'X' => 'LoggerPatternConverterMDC', 'mdc' => 'LoggerPatternConverterMDC', ); /** Maps conversion keywords to the relevant converter. */ protected $converterMap = array(); /** * Head of a chain of Converters. * @var LoggerPatternConverter */ private $head; /** Returns the default converter map. */ public static function getDefaultConverterMap() { return self::$defaultConverterMap; } /** Constructor. Initializes the converter map. */ public function __construct() { $this->converterMap = self::$defaultConverterMap; } /** * Sets the conversionPattern option. This is the string which * controls formatting and consists of a mix of literal content and * conversion specifiers. * @param array $conversionPattern */ public function setConversionPattern($conversionPattern) { $this->pattern = $conversionPattern; } /** * Processes the conversion pattern and creates a corresponding chain of * pattern converters which will be used to format logging events. */ public function activateOptions() { if (!isset($this->pattern)) { throw new LoggerException("Mandatory parameter 'conversionPattern' is not set."); } $parser = new LoggerPatternParser($this->pattern, $this->converterMap); $this->head = $parser->parse(); } /** * Produces a formatted string as specified by the conversion pattern. * * @param LoggerLoggingEvent $event * @return string */ public function format(LoggerLoggingEvent $event) { $sbuf = ''; $converter = $this->head; while ($converter !== null) { $converter->format($sbuf, $event); $converter = $converter->next; } return $sbuf; } }