public ILog Get(string name)
        {
            var logger = _baseLogger ?? Log.Logger;
            var log = (_logs[name] as ILog)
                      ?? (ILog)(_logs[name] = new SerilogLog(logger.ForContext("name", name)));

            return log;
        }
        public ILog Get(string name)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            var logger = _baseLogger ?? Log.Logger;

            if (logger == null)
            {
                throw new ArgumentNullException("logger", "An valid instance of Serilog was not available.");
            }

            var log = this._logs[name] as ILog
                      ?? (ILog)
                         (_logs[name] = new SerilogLog(logger.ForContext(Constants.SourceContextPropertyName, name), this._demoteDebug));

            return log;
        }