/// <summary>
        /// Converts a <see cref="US.OpenServer.Level"/> enumeration to log4net.Core.Level object.
        /// </summary>
        /// <param name="level">The Level to convert.</param>
        /// <returns>A log4net.Core.Level object.</returns>
        private log4net.Core.Level GetLevelFromLevel(US.OpenServer.Level level)
        {
            switch (level)
            {
            case US.OpenServer.Level.Debug:
                return(log4net.Core.Level.Debug);

            case US.OpenServer.Level.Info:
                return(log4net.Core.Level.Info);

            case US.OpenServer.Level.Notice:
                return(log4net.Core.Level.Notice);

            case US.OpenServer.Level.Critical:
                return(log4net.Core.Level.Critical);

            case US.OpenServer.Level.Error:
                return(log4net.Core.Level.Error);

            default:
                return(log4net.Core.Level.Info);
            }
        }
        /// <summary>
        /// Logs a message.
        /// </summary>
        /// <param name="level">The level of the message.</param>
        /// <param name="message">The message.</param>
        public override void Log(US.OpenServer.Level level, string message)
        {
            base.Log(level, message);

            if (level == US.OpenServer.Level.Debug && !LogDebug)
            {
                return;
            }

            if (log == null)
            {
                return;
            }

            LoggingEventData d = new LoggingEventData();

            d.TimeStamp = DateTime.Now;
            d.Level     = GetLevelFromLevel(level);
            d.Message   = message;
            LoggingEvent le = new LoggingEvent(d);

            log.Logger.Log(le);
        }