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

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


The following commit(s) were added to refs/heads/master by this push:
     new 82961bfa Update the change report (#322)
82961bfa is described below

commit 82961bfaddcef9368b5e1e2909e0c2d17b992540
Author: Stephen Webb <[email protected]>
AuthorDate: Thu Dec 28 12:41:15 2023 +1100

    Update the change report (#322)
    
    * Update performance information
---
 src/site/markdown/change-report-gh.md |  5 ++++-
 src/site/markdown/performance.md      | 18 +++++++++---------
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/site/markdown/change-report-gh.md 
b/src/site/markdown/change-report-gh.md
index 59ec511e..b47918b9 100644
--- a/src/site/markdown/change-report-gh.md
+++ b/src/site/markdown/change-report-gh.md
@@ -50,13 +50,14 @@ Changelog {#changelog}
 The following issues have been addressed:
 
 * The `locale` external character encoding option reverting to US-ASCII 
\[[LOGCXX-483](https://issues.apache.org/jira/browse/LOGCXX-483)\]
-* A segfault during process exit when log4cxx::LogManager::shutdown is not 
called
+* A segfault during process exit when log4cxx::LogManager::shutdown is not 
called \[[#268](https://github.com/apache/logging-log4cxx/pull/268)\] 
\[[#219](https://github.com/apache/logging-log4cxx/pull/219)\]
 * The cmake option to include a MultiprocessRollingFileAppender did not work
 * Build failure in a MSYS2 environment
 * Format settings (e.g. std::hex) were retained across LOG4CXX_XXXXX macro 
logging requests
 * When the APR library was built without support for threads 
(APR_HAS_THREADS=0):
     * the AsyncAppender and dynamically loaded configuration changes were not 
available
     * a single nested/mapped diagnostic context (NDC/MDC) would be used and 
updated (without synchronization)
+* On Windows, GetThreadDescription() called for each logging event when the 
thread name was empty 
\[[#321](https://github.com/apache/logging-log4cxx/pull/321)\]
 
 Release 1.2.0 includes the following new features:
 
@@ -64,10 +65,12 @@ Release 1.2.0 includes the following new features:
 * log4cxx::hexdump function that returns a string of hexadecimal byte values
 * Ability to remove a HierarchyEventListener 
\[[#233](https://github.com/apache/logging-log4cxx/issues/233)\]
 * Less string copying when sending a logging event to an appender
+* Less frequent mutex contention when logging from multiple threads 
concurrently \[[#320](https://github.com/apache/logging-log4cxx/pull/320)\]
 * Allow thread information to be included in JSON formatted output
 * Optional support for logging during process termination 
\[[#271](https://github.com/apache/logging-log4cxx/pull/271)\]
 * A cmake option to place Log4cxx functions in a different namespace 
\[[#277](https://github.com/apache/logging-log4cxx/pull/277)\]
 * Optionally use std::format in LOG4CXX_XXXX_FMT macros instead of fmt::format 
\[[#291](https://github.com/apache/logging-log4cxx/pull/291)\]
+* Support for per object enabling/disabling of logging requests (see 
log4cxx::LoggerInstancePtr)
 
 Note: the `LOG4CXX_CHARSET` cmake option (external character encoding) default 
value has changed to `utf-8`
 
diff --git a/src/site/markdown/performance.md b/src/site/markdown/performance.md
index 8aa05c1f..f64655c4 100644
--- a/src/site/markdown/performance.md
+++ b/src/site/markdown/performance.md
@@ -33,16 +33,16 @@ this throughput much lower.  Delays in writing messages to 
disk can also
 greatly decrease performance, depending on how much data is being logged.
 
 If the logging of a particular level is disabled, performance can also be
-a lot better.  While Log4cxx can handle 2,000,000 log messages/second, when
-the log statement is disabled(not logged), this can go to over 20,000,000
-messages/second, thus not unduly slowing down an application when logging
-is disabled.
+a lot better.  While Log4cxx can generate 2,000,000 log messages/second,
+skipping a disabled logging request requires only a few nano-seconds,
+so application performance is not affected when
+logging requests are not removed from the release build.
 
-For the best performance, the `LOG4CXX_[level]_FMT` series of macros should
-be utilized, as they use the [{fmt}](https://fmt.dev/latest/index.html)
-library(note that you must include the headers from {fmt} manually).
-Using {fmt} over `operator<<` for log messages is both cleaner from a code
-standpoint, and is also significantly faster(approximately 2x as fast).
+For the best performance, use the `LOG4CXX_[level]_FMT` series of macros,
+as the [{fmt}](https://fmt.dev/latest/index.html) library
+they use is significantly faster
+(up to twice as fast as `operator<<`).
+Note that you must include the headers from {fmt} manually.
 
 These two pieces of logging code are logically equivalent(printing out the same
 values), however the one utilizing fmt is close to 2x as fast on some systems.

Reply via email to