/** * Sets the param with the passed name, type and value. * * @param string $name The param name * @param string $type The param type * @param mixed $value The param value * * @return void */ public function setParam($name, $type, $value) { // initialize the param to set $paramToSet = new ParamNode($name, $type, new NodeValue($value)); // query whether a param with this name has already been set foreach ($this->params as $key => $param) { if ($param->getName() === $paramToSet->getName()) { // override the param $this->params[$key] = $paramToSet; return; } } // append the param $this->params[] = $paramToSet; }
/** * Initializes the default logger configuration. * * @return void */ protected function initDefaultLoggers() { // we need an introspection processor $processors = array(); $processor = new ProcessorNode('\\Monolog\\Processor\\IntrospectionProcessor'); $processors[$processor->getPrimaryKey()] = $processor; // and a line formatter $formatter = new FormatterNode('\\Monolog\\Formatter\\LineFormatter'); // initialize the params for the system logger handler $handlerParams = array(); $streamParam = new ParamNode('stream', 'string', new NodeValue('var/log/appserver-errors.log')); $levelParam = new ParamNode('level', 'integer', new NodeValue(200)); $bubbleParam = new ParamNode('bubble', 'boolean', new NodeValue(false)); $handlerParams[$streamParam->getPrimaryKey()] = $streamParam; $handlerParams[$levelParam->getPrimaryKey()] = $levelParam; $handlerParams[$bubbleParam->getPrimaryKey()] = $bubbleParam; // initialize the handler $handlers = array(); $handler = new HandlerNode('\\Monolog\\Handler\\StreamHandler', $formatter, $handlerParams); $handlers[$handler->getPrimaryKey()] = $handler; // initialize the system logger with the processor and the handlers $systemLogger = new LoggerNode('System', '\\Monolog\\Logger', 'system', $processors, $handlers); // initialize the params for the access logger formatter $formatterParams = array(); $formatParam = new ParamNode('format', 'string', new NodeValue('%message%')); $dateFormatParam = new ParamNode('dateFormat', 'string', new NodeValue('Y-m-d H:i:s')); $allowInlineLineBreaksParam = new ParamNode('allowInlineLineBreaks', 'boolean', new NodeValue(true)); $formatterParams[$formatParam->getPrimaryKey()] = $formatParam; $formatterParams[$dateFormatParam->getPrimaryKey()] = $dateFormatParam; $formatterParams[$allowInlineLineBreaksParam->getPrimaryKey()] = $allowInlineLineBreaksParam; // initialize the formatter for the access logger $formatter = new FormatterNode('\\Monolog\\Formatter\\LineFormatter', $formatterParams); // initialize the params for the access logger handler $handlerParams = array(); $streamParam = new ParamNode('stream', 'string', new NodeValue('var/log/appserver-access.log')); $levelParam = new ParamNode('level', 'integer', new NodeValue(100)); $bubbleParam = new ParamNode('bubble', 'boolean', new NodeValue(true)); $handlerParams[$streamParam->getPrimaryKey()] = $streamParam; $handlerParams[$levelParam->getPrimaryKey()] = $levelParam; $handlerParams[$bubbleParam->getPrimaryKey()] = $bubbleParam; // initialize the handler for the access logger $handlers = array(); $handler = new HandlerNode('\\Monolog\\Handler\\StreamHandler', $formatter, $handlerParams); $handlers[$handler->getPrimaryKey()] = $handler; // initialize the access logger $accessLogger = new LoggerNode('Access', '\\Monolog\\Logger', 'access', $processors, $handlers); // add the loggers to the default logger configuration $this->loggers[$systemLogger->getPrimaryKey()] = $systemLogger; $this->loggers[$accessLogger->getPrimaryKey()] = $accessLogger; }