This is an automated email from the ASF dual-hosted git repository.

swebb2066 pushed a commit to branch documentation_improvement
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git

commit 27546ececd0ee4e8712bc50ee6e97185ebf73da1
Author: Stephen Webb <[email protected]>
AuthorDate: Tue Sep 12 17:48:50 2023 +1000

    Revert to console output when configuration file is missing in documented 
configuration examples
---
 src/examples/cpp/com/foo/config-qt.cpp       | 4 +++-
 src/examples/cpp/com/foo/config2.cpp         | 4 +++-
 src/examples/cpp/com/foo/config3.cpp         | 5 ++++-
 src/main/include/log4cxx/basicconfigurator.h | 9 +++++----
 4 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/src/examples/cpp/com/foo/config-qt.cpp 
b/src/examples/cpp/com/foo/config-qt.cpp
index 64889087..41d5eca1 100644
--- a/src/examples/cpp/com/foo/config-qt.cpp
+++ b/src/examples/cpp/com/foo/config-qt.cpp
@@ -15,6 +15,7 @@
  * limitations under the License.
  */
 #include "config-qt.h"
+#include <log4cxx/basicconfigurator.h>
 #include <log4cxx/logmanager.h>
 #include <log4cxx-qt/configuration.h>
 #include <log4cxx/helpers/loglog.h>
@@ -51,7 +52,8 @@ void ConfigureLogging() {
 #if defined(_DEBUG)
        log4cxx::helpers::LogLog::setInternalDebugging(true);
 #endif
-       log4cxx::qt::Configuration::configureFromFileAndWatch(paths, names);
+       if (log4cxx::qt::Configuration::configureFromFileAndWatch(paths, names) 
== log4cxx::spi::ConfigurationStatus::NotConfigured)
+               log4cxx::BasicConfigurator::configure(); // Send events to the 
console
 }
 
 // Retrieve the \c name logger pointer.
diff --git a/src/examples/cpp/com/foo/config2.cpp 
b/src/examples/cpp/com/foo/config2.cpp
index 2c25f8af..8228e374 100644
--- a/src/examples/cpp/com/foo/config2.cpp
+++ b/src/examples/cpp/com/foo/config2.cpp
@@ -1,4 +1,5 @@
 #include "com/foo/config.h"
+#include <log4cxx/basicconfigurator.h>
 #include <log4cxx/propertyconfigurator.h>
 #include <log4cxx/logmanager.h>
 
@@ -7,7 +8,8 @@ namespace com { namespace foo {
 auto getLogger(const std::string& name) -> LoggerPtr {
        static struct log4cxx_initializer {
                log4cxx_initializer() {
-                       
log4cxx::PropertyConfigurator::configure("MyApp.properties");
+                       if 
(log4cxx::PropertyConfigurator::configure("MyApp.properties") == 
log4cxx::spi::ConfigurationStatus::NotConfigured)
+                               log4cxx::BasicConfigurator::configure(); // 
Send events to the console
                }
                ~log4cxx_initializer() {
                        log4cxx::LogManager::shutdown();
diff --git a/src/examples/cpp/com/foo/config3.cpp 
b/src/examples/cpp/com/foo/config3.cpp
index d38ae43c..34974051 100644
--- a/src/examples/cpp/com/foo/config3.cpp
+++ b/src/examples/cpp/com/foo/config3.cpp
@@ -17,6 +17,7 @@
 #include "config.h"
 #include <log4cxx/logmanager.h>
 #include <log4cxx/logstring.h>
+#include <log4cxx/basicconfigurator.h>
 #include <log4cxx/defaultconfigurator.h>
 #include <log4cxx/helpers/pool.h>
 #include <log4cxx/file.h>
@@ -136,8 +137,10 @@ void SelectConfigurationFile() {
                        }
                }
                if (extension[i]) // Found a configuration file?
-                       break;
+                       return;
        }
+       // Configuration file not found - send events to the console
+       BasicConfigurator::configure();
 }
 
 } // namespace
diff --git a/src/main/include/log4cxx/basicconfigurator.h 
b/src/main/include/log4cxx/basicconfigurator.h
index 59bf032d..edecfade 100644
--- a/src/main/include/log4cxx/basicconfigurator.h
+++ b/src/main/include/log4cxx/basicconfigurator.h
@@ -29,10 +29,11 @@ class Appender;
 typedef std::shared_ptr<Appender> AppenderPtr;
 
 /**
-Use this class to quickly configure the package.
-<p>For file based configuration see
-PropertyConfigurator. For XML based configuration see
-DOMConfigurator.
+Use BasicConfigurator (static) methods to configure Log4cxx
+when not using a configuration file.
+
+For <code>key=value</code> format configuration see PropertyConfigurator.
+For XML format configuration see xml::DOMConfigurator.
 */
 class LOG4CXX_EXPORT BasicConfigurator
 {

Reply via email to