/// <inheritdoc />
        public string GetLoggerName(Type type)
        {
            if (_typesToLoggersCache.ContainsKey(type))
            {
                return(_typesToLoggersCache.GetEntryValue(type));
            }

            var loggerName = type.ToString();

            if (_typesToLoggers.ContainsKey(type))
            {
                loggerName = _typesToLoggers[type];
            }

            var matchingNamespaces = _namespacesToLoggers.Keys.Where(type.IsInNamespace).ToList();

            if (matchingNamespaces.Any())
            {
                var matchingNameSpace = matchingNamespaces.First();
                loggerName = _namespacesToLoggers[matchingNameSpace];
            }
            _typesToLoggersCache.AddEntry(type, loggerName);
            return(loggerName);
        }