public void GetLog(WebData webData, LogLevel?minLevel = null)
        {
            LogLevel level = minLevel ?? LogLevel.Verbose;

            webData.Result.AddMessage(webData.Method, "Retrieved logging datasets...");
            int i     = (int)(DateTime.Now.TimeOfDay.Ticks / TimeSpan.TicksPerMillisecond);
            var items = new List <LogEntry>();

            foreach (var msg in LogCollector.ToArray().Reverse())
            {
                if (msg.Level > level)
                {
                    continue;
                }

                if (msg.Exception == null || 0 == LogCollector.ExceptionMode)
                {
                    items.Add(new LogEntry()
                    {
                        ID       = i--,
                        Level    = msg.Level,
                        Content  = msg.Content,
                        Source   = msg.Source,
                        DateTime = msg.DateTime,
                    });
                    continue;
                }

                //log stacktrace
                bool stackTrace       = (0 != (LogCollector.ExceptionMode & LogExceptionMode.StackTrace));
                var  exceptionMessage = msg.Exception.ToXT(stackTrace);
                //with same level ?
                if (0 != (LogCollector.ExceptionMode & LogExceptionMode.SameLevel))
                {
                    items.Add(new LogEntry()
                    {
                        ID       = i--,
                        Level    = msg.Level,
                        Content  = msg.Content + new XT("\n") + exceptionMessage,
                        Source   = msg.Source,
                        DateTime = msg.DateTime,
                    });
                }
                else
                {
                    //two different messages
                    items.Add(new LogEntry()
                    {
                        ID       = i--,
                        Level    = msg.Level,
                        Content  = msg.Content,
                        Source   = msg.Source,
                        DateTime = msg.DateTime,
                    });
                    if (level >= LogLevel.Verbose)
                    {
                        items.Add(new LogEntry()
                        {
                            ID       = i--,
                            Level    = LogLevel.Verbose,
                            Content  = exceptionMessage,
                            Source   = msg.Source,
                            DateTime = msg.DateTime,
                        });
                    }
                }
            }
            webData.Result.AddStructs(items);
        }