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.