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

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

commit 0b4fdf655c5aa16cbe2e8f5d700471d42168a84d
Author: Stephen Webb <[email protected]>
AuthorDate: Thu Aug 27 11:30:59 2026 +1000

    Document the single-threaded configuration constraint
---
 src/main/include/log4cxx/spi/configurator.h | 5 +++++
 src/site/markdown/threading.md              | 9 ++++++---
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/main/include/log4cxx/spi/configurator.h 
b/src/main/include/log4cxx/spi/configurator.h
index de19844a..3192df4a 100644
--- a/src/main/include/log4cxx/spi/configurator.h
+++ b/src/main/include/log4cxx/spi/configurator.h
@@ -51,6 +51,8 @@ class LOG4CXX_EXPORT Configurator : virtual public 
helpers::Object
                If \c repository is not provided,
                the spi::LoggerRepository held by LogManager is used.
 
+               @warning Concurrent calls from multiple thread is *undefined 
behavior*.
+
                @param configFileName The file to parse
                @param repository Holds the Logger instances.
                */
@@ -78,6 +80,9 @@ class LOG4CXX_EXPORT Configurator : virtual public 
helpers::Object
                - PROGRAM_FILE_PATH.FILENAME
                - PROGRAM_FILE_PATH.STEM
                - PROGRAM_FILE_PATH.EXTENSION
+
+               @warning This method is not thread-safe.
+               @return a mutable map - modification and use must be confined 
to a single thread.
                */
                static helpers::Properties& properties();
 
diff --git a/src/site/markdown/threading.md b/src/site/markdown/threading.md
index c98b880d..3d061395 100644
--- a/src/site/markdown/threading.md
+++ b/src/site/markdown/threading.md
@@ -22,9 +22,12 @@ Threading {#threading}
 -->
 [TOC]
 
-Log4cxx is designed to be thread-safe under under normal usage.  This
-means that logging itself is always thread-safe, however there are
-certain circumstances that can cause threading issues with Log4cxx.
+Log4cxx is designed to be thread-safe under under normal usage.
+This means that multiple threads can concurrently send logging events to 
appenders.
+Log4cxx *requires* that configuration occurs in a single-threaded context
+(typically during application startup before worker threads are spawned
+or in a single watch-dog thread).
+However there are certain circumstances that can cause threading issues with 
Log4cxx.
 
 ## Unexpected Exit {#unexpected-exit}
 

Reply via email to