예제 #1
0
 /**
  * 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;
 }