/// <summary>
        /// create LogConfig instance
        /// </summary>
        /// <param name="fileName">the xml config file name</param>
        /// <param name="configId">the config id</param>
        /// <returns>the logconfig instance</returns>
        public LogConfig(string fileName, string configId)
        {
            LogManagement.Instance().Initialize(fileName);
            LogConfigBase config = LogManagement.Instance().Site.Config.LogConfigs[configId];

            if (config == null)
            {
                throw new StackException(string.Format(CultureInfo.InvariantCulture, "the config can not be found, id={0}", configId));
            }

            this.realLogConfig = config;
        }
 internal ILogDistination GetDistination(LogConfigBase config)
 {
     lock (logDistinationMap)
     {
         ILogDistination distination = null;
         if (!logDistinationMap.ContainsKey(config.Type))
         {
             distination = config.CreateDistination();
             logDistinationMap.Add(config.Type, distination);
         }
         else
         {
             distination = logDistinationMap[config.Type];
         }
         return(distination);
     }
 }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="logConfig">The log config</param>
        public Logger(LogConfig logConfig)
        {
            this.Config = logConfig.RealLogConfig;

            LogManagement.Instance().AddLogger(this);
        }