Improve Logger interface consistency in the next ABI (#562)

diff --git a/src/main/cpp/logger.cpp b/src/main/cpp/logger.cpp
index 9574a14..935d8bd 100644
--- a/src/main/cpp/logger.cpp
+++ b/src/main/cpp/logger.cpp
@@ -327,10 +327,17 @@
 #endif
 }
 
+#if LOG4CXX_ABI_VERSION <= 15
 LoggerRepository* Logger::getLoggerRepository() const
 {
 	return m_priv->repositoryRaw;
 }
+#else
+LoggerRepositoryPtr Logger::getLoggerRepository()
+{
+	return LogManager::getLoggerRepository();
+}
+#endif
 
 LoggerRepository* Logger::getHierarchy() const
 {
diff --git a/src/main/include/log4cxx/logger.h b/src/main/include/log4cxx/logger.h
index 1241d0c..4078615 100644
--- a/src/main/include/log4cxx/logger.h
+++ b/src/main/include/log4cxx/logger.h
@@ -843,11 +843,13 @@
 		*/
 		virtual const LevelPtr& getEffectiveLevel() const;
 
+#if LOG4CXX_ABI_VERSION <= 15
 		/**
 		Return the the LoggerRepository where this
 		<code>Logger</code> is attached.
 		*/
 		spi::LoggerRepository* getLoggerRepository() const;
+#endif
 
 		/**
 		* Get the logger name.
@@ -898,6 +900,13 @@
 		*/
 		const LevelPtr& getLevel() const;
 
+#if 15 < LOG4CXX_ABI_VERSION
+		/**
+		The object that holds all Logger instances.
+		*/
+		static spi::LoggerRepositoryPtr getLoggerRepository();
+#endif
+
 		/**
 		* Retrieve a logger by name in current encoding.
 		* @param name logger name.