base.go
func (b *Base) RemoveLogger(logger Logger) error {
	for idx, rLogger := range b.loggers {
		if rLogger == logger {
			err := rLogger.ShutdownLogger()
			if err != nil {
				return err
			}
			b.loggers[idx] = b.loggers[len(b.loggers)-1]
			b.loggers[len(b.loggers)-1] = nil
			b.loggers = b.loggers[:len(b.loggers)-1]
			return nil
		}
	}

	// Remove any hook instances the logger has
	for idx, hookLogger := range b.hookPreQueue {
		if hookLogger == logger {
			b.hookPreQueue[idx] = b.hookPreQueue[len(b.hookPreQueue)-1]
			b.hookPreQueue[len(b.hookPreQueue)-1] = nil
			b.hookPreQueue = b.hookPreQueue[:len(b.hookPreQueue)-1]
		}
	}

	return nil
}
func (b *Base) RemoveLogger(logger Logger) error {
	for idx, rLogger := range b.loggers {
		if rLogger == logger {
			err := rLogger.ShutdownLogger()
			if err != nil {
				return err
			}
			b.loggers[idx] = b.loggers[len(b.loggers)-1]
			b.loggers[len(b.loggers)-1] = nil
			b.loggers = b.loggers[:len(b.loggers)-1]
			return nil
		}
	}

	// Remove any hook instances the logger has
	for idx, hookLogger := range b.hookPreQueue {
		if hookLogger == logger {
			b.hookPreQueue[idx] = b.hookPreQueue[len(b.hookPreQueue)-1]
			b.hookPreQueue[len(b.hookPreQueue)-1] = nil
			b.hookPreQueue = b.hookPreQueue[:len(b.hookPreQueue)-1]
		}
	}

	return nil
}
/*
RemoveLogger will run ShutdownLogger on the given logger and then remove the given
Logger from the list in Base
*/