Logs data generated by any IDataGenerator. The logs can be replayed using a ReplayDataGenerator
Inheritance: IDataLogger
 public void SetLogger(DataGeneratorLogger logger)
 {
     _logger = logger;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Initializes all defined loggers
        /// </summary>
        private void InitLoggers()
        {
            XmlElement destinationNode = (XmlElement)_doc.DocumentElement.SelectSingleNode("Logger/Destination");
            if(destinationNode == null)
                throw new FuzzParseException("Could not find logger destination node");

            _logDestination = _formatter.Format(destinationNode.InnerText);

            foreach(XmlElement useLoggerNode in _doc.DocumentElement.SelectNodes("Logger/UseLogger"))
            {
                switch(useLoggerNode.GetAttribute("name"))
                {
                case "datagenlogger":
                {
                    DataGeneratorLogger datagenLogger = new DataGeneratorLogger(_logDestination);
                    foreach(var fuzzDescInfo in _fuzzDescriptions)
                    {
                        foreach(var fuzzLocationInfo in fuzzDescInfo.FuzzLocations)
                            fuzzLocationInfo.SetLogger(LoggerDestinationEnum.DataGenLogger, datagenLogger);

                        foreach(var preCondition in _preConditions)
                            preCondition.SetLogger(LoggerDestinationEnum.DataGenLogger, datagenLogger);
                    }
                    _loggers.Add(datagenLogger);
                    break;
                }
                case "connectorlogger":
                {
                    _loggers.Add(_connector.CreateLogger(_logDestination));
                    break;
                }
                case "stackframelogger":
                {
                    _loggers.Add(new StackFrameLogger(_connector, _logDestination));
                    break;
                }
                case "remotepipelogger":
                {
                    if(_remoteControlProtocol != null)
                    {
                        string[] pipeNames = XmlHelper.ReadStringArray(useLoggerNode, "PipeName");
                        _loggers.Add(new RemotePipeLogger(_remoteControlProtocol, _logDestination, pipeNames));
                    }
                    break;
                }

                }
            }
        }