void ILogSource.Initialize()
        {
            if (m_logInitialized == true)
            {
                return;
            }

            // initialize original sources
            int n = m_originalSources.Count;
            int i = 0;

            for (i = 0; i < m_originalSources.Count; i++)
            {
                ILogSource s = m_originalSources[i];

                try
                {
                    // format notification message
                    m_owner.Raise_AggregationProgress("Raise_AggregationProgress", //LogViewerSR.AggregationProgress_Initialize(i + 1, n, (s.Name != null) ? s.Name.Trim() : String.Empty),
                                                      0,
                                                      null);

                    // initialize (load) inner source
                    s.Initialize();
                }
                catch (Exception e) //whenever a source issued an exception, the exception is stored in the exception list and the source is removed from the list
                {
                    AddExceptionToExceptionList(e, s.Name);
                    m_originalSources.RemoveAt(i);
                    s.CloseReader();
                    i--;
                }

                // check for cancel
                if (IsCanceled())
                {
                    return;
                }
            }

            // report all inner source loaded
            m_owner.Raise_AggregationProgress("LogViewerSR.AggregationProgress_InitializationDone",
                                              LogAggregator.cProgressLoaded,
                                              null);


            m_logInitialized = true;
        }