You can subscribe to this list here.
| 2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
(2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
| 2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2016 |
Jan
(2) |
Feb
|
Mar
|
Apr
(6) |
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(5) |
Nov
(4) |
Dec
|
| 2017 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2023 |
Jan
|
Feb
(11) |
Mar
(3) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(8) |
Nov
(4) |
Dec
(4) |
| 2026 |
Jan
(1) |
Feb
(9) |
Mar
(9) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <log...@li...> - 2026-03-30 10:27:08
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via aaa0bb36c0f8a6e406b99dabdd021bb5dcdff15c (commit)
via 84198fc1bd0086a8a57ba3cb02607e66d0438cda (commit)
via 18de3bb8b56632f7d44ba50150420a1d5a7eba58 (commit)
via 7ca34538f51c7505151759c7725f5bee0f40f29d (commit)
from 2539584231404557fa159cc788ad0cfe11b48b5a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit aaa0bb36c0f8a6e406b99dabdd021bb5dcdff15c
Author: Alexander Perepelkin <san...@us...>
Date: Mon Mar 30 08:11:15 2026 +0200
ChangeLog, index.html
diff --git a/ChangeLog b/ChangeLog
index 95c186d..43d7a74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2026-03-29 21:49 sanchouss_
+ * NTEventLogAppender: Avoid potential Unicode-related linking issues when the library and application are built with different define-UNICODE settings.
+ Make implementation safer by considering corner cases.
+ When Windows registry is set up by the appender, print debug info to the console (debug builds only).
+ Add generation of Event Message File "NTEventLogAppender.dll" for Windows Event Viewer with CMake on Win32 platforms.
+
2026-03-27 20:40 sanchouss_
* fix for bug #148: remove virtual specifier from open(). Thanks to Jac Goudsmit for reporting and proposals.
diff --git a/doc/html/index.html b/doc/html/index.html
index 5961975..c46f397 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -18,7 +18,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2026-03-26</span> | <span> <a href="https://sourceforge.net/projects/log4cpp/">Sourceforge Home</a>
+2026-03-30</span> | <span> <a href="https://sourceforge.net/projects/log4cpp/">Sourceforge Home</a>
</span> |
</div>
<hr class="delimiter">
@@ -915,7 +915,16 @@ A3.log.1
<small>
<dl>
- <dt>master branch (26 March 2026)</dt>
+ <dt>master branch (29 March 2026)</dt>
+ <dd>
+ NTEventLogAppender: Avoid potential Unicode-related linking issues when the library and application are built with different define-UNICODE settings.<br>
+ When Windows registry is set up by the appender, print debug info to the console (debug builds only).<br>
+ Add generation of Event Message File "NTEventLogAppender.dll" for Windows Event Viewer with CMake on Win32 platforms.
+ </dd>
+
+ <dd>
+ fix for bug #148: remove virtual specifier from open(). Thanks to Jac Goudsmit for reporting and proposals.
+ </dd>
<dd>Fix Y2038 issue in Timestamp class (32-bit seconds field overflow).
Use time_t for seconds to avoid truncation/overflow on platforms where time_t is 64-bit.
Thanks to Adrien Destugues for reporting bug #153.
http://sourceforge.net/p/log4cpp/codegit/ci/
commit aaa0bb36c0f8a6e406b99dabdd021bb5dcdff15c
Author: Alexander Perepelkin <san...@us...>
Date: Mon Mar 30 08:11:15 2026 +0200
ChangeLog, index.html
diff --git a/ChangeLog b/ChangeLog
index 95c186d..43d7a74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2026-03-29 21:49 sanchouss_
+ * NTEventLogAppender: Avoid potential Unicode-related linking issues when the library and application are built with different define-UNICODE settings.
+ Make implementation safer by considering corner cases.
+ When Windows registry is set up by the appender, print debug info to the console (debug builds only).
+ Add generation of Event Message File "NTEventLogAppender.dll" for Windows Event Viewer with CMake on Win32 platforms.
+
2026-03-27 20:40 sanchouss_
* fix for bug #148: remove virtual specifier from open(). Thanks to Jac Goudsmit for reporting and proposals.
diff --git a/doc/html/index.html b/doc/html/index.html
index 5961975..c46f397 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -18,7 +18,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2026-03-26</span> | <span> <a href="https://sourceforge.net/projects/log4cpp/">Sourceforge Home</a>
+2026-03-30</span> | <span> <a href="https://sourceforge.net/projects/log4cpp/">Sourceforge Home</a>
</span> |
</div>
<hr class="delimiter">
@@ -915,7 +915,16 @@ A3.log.1
<small>
<dl>
- <dt>master branch (26 March 2026)</dt>
+ <dt>master branch (29 March 2026)</dt>
+ <dd>
+ NTEventLogAppender: Avoid potential Unicode-related linking issues when the library and application are built with different define-UNICODE settings.<br>
+ When Windows registry is set up by the appender, print debug info to the console (debug builds only).<br>
+ Add generation of Event Message File "NTEventLogAppender.dll" for Windows Event Viewer with CMake on Win32 platforms.
+ </dd>
+
+ <dd>
+ fix for bug #148: remove virtual specifier from open(). Thanks to Jac Goudsmit for reporting and proposals.
+ </dd>
<dd>Fix Y2038 issue in Timestamp class (32-bit seconds field overflow).
Use time_t for seconds to avoid truncation/overflow on platforms where time_t is 64-bit.
Thanks to Adrien Destugues for reporting bug #153.
http://sourceforge.net/p/log4cpp/codegit/ci/
commit aaa0bb36c0f8a6e406b99dabdd021bb5dcdff15c
Author: Alexander Perepelkin <san...@us...>
Date: Mon Mar 30 08:11:15 2026 +0200
ChangeLog, index.html
diff --git a/ChangeLog b/ChangeLog
index 95c186d..43d7a74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2026-03-29 21:49 sanchouss_
+ * NTEventLogAppender: Avoid potential Unicode-related linking issues when the library and application are built with different define-UNICODE settings.
+ Make implementation safer by considering corner cases.
+ When Windows registry is set up by the appender, print debug info to the console (debug builds only).
+ Add generation of Event Message File "NTEventLogAppender.dll" for Windows Event Viewer with CMake on Win32 platforms.
+
2026-03-27 20:40 sanchouss_
* fix for bug #148: remove virtual specifier from open(). Thanks to Jac Goudsmit for reporting and proposals.
diff --git a/doc/html/index.html b/doc/html/index.html
index 5961975..c46f397 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -18,7 +18,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2026-03-26</span> | <span> <a href="https://sourceforge.net/projects/log4cpp/">Sourceforge Home</a>
+2026-03-30</span> | <span> <a href="https://sourceforge.net/projects/log4cpp/">Sourceforge Home</a>
</span> |
</div>
<hr class="delimiter">
@@ -915,7 +915,16 @@ A3.log.1
<small>
<dl>
- <dt>master branch (26 March 2026)</dt>
+ <dt>master branch (29 March 2026)</dt>
+ <dd>
+ NTEventLogAppender: Avoid potential Unicode-related linking issues when the library and application are built with different define-UNICODE settings.<br>
+ When Windows registry is set up by the appender, print debug info to the console (debug builds only).<br>
+ Add generation of Event Message File "NTEventLogAppender.dll" for Windows Event Viewer with CMake on Win32 platforms.
+ </dd>
+
+ <dd>
+ fix for bug #148: remove virtual specifier from open(). Thanks to Jac Goudsmit for reporting and proposals.
+ </dd>
<dd>Fix Y2038 issue in Timestamp class (32-bit seconds field overflow).
Use time_t for seconds to avoid truncation/overflow on platforms where time_t is 64-bit.
Thanks to Adrien Destugues for reporting bug #153.
http://sourceforge.net/p/log4cpp/codegit/ci/
commit aaa0bb36c0f8a6e406b99dabdd021bb5dcdff15c
Author: Alexander Perepelkin <san...@us...>
Date: Mon Mar 30 08:11:15 2026 +0200
ChangeLog, index.html
diff --git a/ChangeLog b/ChangeLog
index 95c186d..43d7a74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2026-03-29 21:49 sanchouss_
+ * NTEventLogAppender: Avoid potential Unicode-related linking issues when the library and application are built with different define-UNICODE settings.
+ Make implementation safer by considering corner cases.
+ When Windows registry is set up by the appender, print debug info to the console (debug builds only).
+ Add generation of Event Message File "NTEventLogAppender.dll" for Windows Event Viewer with CMake on Win32 platforms.
+
2026-03-27 20:40 sanchouss_
* fix for bug #148: remove virtual specifier from open(). Thanks to Jac Goudsmit for reporting and proposals.
diff --git a/doc/html/index.html b/doc/html/index.html
index 5961975..c46f397 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -18,7 +18,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2026-03-26</span> | <span> <a href="https://sourceforge.net/projects/log4cpp/">Sourceforge Home</a>
+2026-03-30</span> | <span> <a href="https://sourceforge.net/projects/log4cpp/">Sourceforge Home</a>
</span> |
</div>
<hr class="delimiter">
@@ -915,7 +915,16 @@ A3.log.1
<small>
<dl>
- <dt>master branch (26 March 2026)</dt>
+ <dt>master branch (29 March 2026)</dt>
+ <dd>
+ NTEventLogAppender: Avoid potential Unicode-related linking issues when the library and application are built with different define-UNICODE settings.<br>
+ When Windows registry is set up by the appender, print debug info to the console (debug builds only).<br>
+ Add generation of Event Message File "NTEventLogAppender.dll" for Windows Event Viewer with CMake on Win32 platforms.
+ </dd>
+
+ <dd>
+ fix for bug #148: remove virtual specifier from open(). Thanks to Jac Goudsmit for reporting and proposals.
+ </dd>
<dd>Fix Y2038 issue in Timestamp class (32-bit seconds field overflow).
Use time_t for seconds to avoid truncation/overflow on platforms where time_t is 64-bit.
Thanks to Adrien Destugues for reporting bug #153.
-----------------------------------------------------------------------
Summary of changes:
CMakeLists.txt | 7 +++
ChangeLog | 6 +++
cmake/NTEventLog.cmake | 83 +++++++++++++++++++++++++++++++++++
doc/html/index.html | 13 +++++-
include/log4cpp/NTEventLogAppender.hh | 15 ++++---
include/log4cpp/Priority.hh | 2 +
resources/NTEventLogCategories.mc | 44 +++++++++++++++++++
src/NTEventLogAppender.cpp | 70 ++++++++++++++++++-----------
src/NTEventLogDummy.cpp | 1 +
src/Priority.cpp | 2 +-
tests/testNTEventLog.cpp | 2 +-
11 files changed, 209 insertions(+), 36 deletions(-)
create mode 100644 cmake/NTEventLog.cmake
create mode 100644 resources/NTEventLogCategories.mc
create mode 100644 src/NTEventLogDummy.cpp
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-03-27 19:43:57
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 2539584231404557fa159cc788ad0cfe11b48b5a (commit)
from e7fde8848b9a7f7d4fbf65b94a90c5c247bc2998 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 2539584231404557fa159cc788ad0cfe11b48b5a
Author: Alexander Perepelkin <san...@us...>
Date: Fri Mar 27 20:43:31 2026 +0100
ChangeLog
diff --git a/ChangeLog b/ChangeLog
index a934f86..95c186d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2026-03-27 20:40 sanchouss_
+ * fix for bug #148: remove virtual specifier from open(). Thanks to Jac Goudsmit for reporting and proposals.
+
2026-03-26 19:41 sanchouss_
* Fix Y2038 issue in Timestamp class (32-bit seconds field overflow).
Use time_t for seconds to avoid truncation/overflow on platforms where time_t is 64-bit.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 3 +++
1 file changed, 3 insertions(+)
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-03-27 19:28:24
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via e7fde8848b9a7f7d4fbf65b94a90c5c247bc2998 (commit)
via d024ee2c60198bc233de40417bad0ab416b079d9 (commit)
from 1c9cc027e9e9cdf2ca76295e32edb7c2771bcca1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit e7fde8848b9a7f7d4fbf65b94a90c5c247bc2998
Author: Alexander Perepelkin <san...@us...>
Date: Fri Mar 27 20:23:48 2026 +0100
Avoid calling virtual functions from constructor: make open() non-virtual to remove ambiguity.
diff --git a/include/log4cpp/IdsaAppender.hh b/include/log4cpp/IdsaAppender.hh
index 6ae90ae..fb39bec 100644
--- a/include/log4cpp/IdsaAppender.hh
+++ b/include/log4cpp/IdsaAppender.hh
@@ -55,7 +55,7 @@ namespace log4cpp {
/**
* Calls idsa_open().
**/
- virtual void open();
+ void open();
/**
* Sends a LoggingEvent to idsa.
diff --git a/include/log4cpp/RemoteSyslogAppender.hh b/include/log4cpp/RemoteSyslogAppender.hh
index 590e439..6903171 100644
--- a/include/log4cpp/RemoteSyslogAppender.hh
+++ b/include/log4cpp/RemoteSyslogAppender.hh
@@ -108,7 +108,7 @@ namespace log4cpp {
/**
* Just creates the socket.
**/
- virtual void open();
+ void open();
/**
* Sends a LoggingEvent to the remote syslog.
diff --git a/include/log4cpp/SyslogAppender.hh b/include/log4cpp/SyslogAppender.hh
index 8a99483..0fc6e8d 100644
--- a/include/log4cpp/SyslogAppender.hh
+++ b/include/log4cpp/SyslogAppender.hh
@@ -57,7 +57,7 @@ namespace log4cpp {
/**
* Calls openlog(3).
**/
- virtual void open();
+ void open();
/**
* Sends a LoggingEvent to syslog.
http://sourceforge.net/p/log4cpp/codegit/ci/
commit e7fde8848b9a7f7d4fbf65b94a90c5c247bc2998
Author: Alexander Perepelkin <san...@us...>
Date: Fri Mar 27 20:23:48 2026 +0100
Avoid calling virtual functions from constructor: make open() non-virtual to remove ambiguity.
diff --git a/include/log4cpp/IdsaAppender.hh b/include/log4cpp/IdsaAppender.hh
index 6ae90ae..fb39bec 100644
--- a/include/log4cpp/IdsaAppender.hh
+++ b/include/log4cpp/IdsaAppender.hh
@@ -55,7 +55,7 @@ namespace log4cpp {
/**
* Calls idsa_open().
**/
- virtual void open();
+ void open();
/**
* Sends a LoggingEvent to idsa.
diff --git a/include/log4cpp/RemoteSyslogAppender.hh b/include/log4cpp/RemoteSyslogAppender.hh
index 590e439..6903171 100644
--- a/include/log4cpp/RemoteSyslogAppender.hh
+++ b/include/log4cpp/RemoteSyslogAppender.hh
@@ -108,7 +108,7 @@ namespace log4cpp {
/**
* Just creates the socket.
**/
- virtual void open();
+ void open();
/**
* Sends a LoggingEvent to the remote syslog.
diff --git a/include/log4cpp/SyslogAppender.hh b/include/log4cpp/SyslogAppender.hh
index 8a99483..0fc6e8d 100644
--- a/include/log4cpp/SyslogAppender.hh
+++ b/include/log4cpp/SyslogAppender.hh
@@ -57,7 +57,7 @@ namespace log4cpp {
/**
* Calls openlog(3).
**/
- virtual void open();
+ void open();
/**
* Sends a LoggingEvent to syslog.
-----------------------------------------------------------------------
Summary of changes:
include/log4cpp/IdsaAppender.hh | 2 +-
include/log4cpp/NTEventLogAppender.hh | 6 +++---
include/log4cpp/RemoteSyslogAppender.hh | 2 +-
include/log4cpp/SyslogAppender.hh | 2 +-
src/NTEventLogAppender.cpp | 2 +-
5 files changed, 7 insertions(+), 7 deletions(-)
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-03-26 19:14:09
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 1c9cc027e9e9cdf2ca76295e32edb7c2771bcca1 (commit)
via 6e1b277510772155c3d844bcd3059c43d501b560 (commit)
from 338670431fc9cc41b95f792ddeef20a203d112a2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 1c9cc027e9e9cdf2ca76295e32edb7c2771bcca1
Author: Alexander Perepelkin <san...@us...>
Date: Thu Mar 26 19:41:15 2026 +0100
Changelog
index.html
Refine text, add entries to FAQ, add changelog
diff --git a/ChangeLog b/ChangeLog
index 4241df1..a934f86 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2026-03-26 19:41 sanchouss_
+ * Fix Y2038 issue in Timestamp class (32-bit seconds field overflow).
+ Use time_t for seconds to avoid truncation/overflow on platforms where time_t is 64-bit.
+ Thanks to Adrien Destugues for reporting bug #153.
+
+ * DailyRollingFileAppender: more detailed documentation, added safety checks to implementation, refine tests
+
+ * Add compile-time printf format checking to Category logging methods.
+ Enhance class log4cpp::Category to enable compile-time checking of printf-style format strings and arguments using compiler attributes.
+ Fixes bug #155 reported by Adrien Destugues.
+
+ * New logging level TRACE with priority value 800 for fine-grained diagnostic logging, trace-level methods and macros.
+
2026-02-20 20:37 sanchouss_
* Add formatted and streaming log4cpp macros with compile-time stripping
- Formatted macros (LOG4CPP_DEBUG, LOG4CPP_INFO, etc.) support variadic arguments
diff --git a/doc/html/index.html b/doc/html/index.html
index e7a8665..5961975 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -18,7 +18,8 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2026-02-27</span> |
+2026-03-26</span> | <span> <a href="https://sourceforge.net/projects/log4cpp/">Sourceforge Home</a>
+</span> |
</div>
<hr class="delimiter">
<div id="projectpage">
@@ -426,42 +427,227 @@ You should have received a copy of the GNU Lesser General Public<br>License alon
<h3>3. USAGE</h3>
<h4>3.1. I've succesfully compiled log4cpp, now how do I use this
stuff?</h4>
- Have a glance at <a title="Simple example" href="#simpleexample">Simple
- example</a> and <a title="Properties file example" href="#propfile">Properties file example</a>.
- For some small examples using log4cpp, see the 'tests' subdirectory.
- Also see the documentation section for a pointer for API documentation
- and more usage information.
+ <ul>
+ <li>Have a glance at <a title="Simple example" href="#simpleexample">Simple
+ example</a> and <a title="Properties file example" href="#propfile">Properties file example</a>.
+ </li>
+ <li>For additional small examples using log4cpp, see the <code>tests</code> subdirectory.</li>
+ <li>Examples on using log4cpp with CMake enabled projects are in <code>examples/cmake_usages</code>
+ subdirectory.
+ </li>
+ <li>Check the <a href="http://log4cpp.sourceforge.net/api/index.html">Doxygen generated
+ API</a> section for API reference and more usage information.
+ </li>
+ </ul>
<h4>3.2. Is log4cpp thread-safe?</h4>
- The same instance of a log4cpp::Category object (a logger) can be used simultaneously from multiple
- threads without explicit synchronization. Concurrent access to appenders is handled by the logger
- itself. It locks an internal mutex each time it writes to an appender. Therefore, it is safe, for
- example, for multiple threads to write to the same logger that appends to the same file.
- However, if log4cpp is configured in such a way that two different loggers append to the same appender
- (for example, the same file appender), the framework cannot guarantee proper synchronization between
- them, and log messages may become interleaved or corrupted. Configuring multiple loggers to share the
- same appender instance is therefore not recommended.<h4>3.3. What are possible format characters for the
- custom log message?</h4>
+
+ <ul>
+ <li>The same instance of a
+ <pre class="monospace">log4cpp::Category</pre>
+ object (a logger) can be used simultaneously from multiple threads without explicit
+ synchronization.
+ </li>
+ <li>Concurrent access to appenders is handled by the logger itself. Logger (category) locks an
+ internal mutex each time it writes to an appender.
+ </li>
+ <li>Therefore, it is safe, for example, for multiple threads to write to the same logger. Log
+ records will not interleave.
+ </li>
+ <li>However, if log4cpp is configured in such a way that two different loggers append to the same
+ appender instance (for example, the same file appender), then the framework cannot guarantee
+ proper
+ synchronization between loggers (categories), and log messages may become interleaved or
+ corrupted. Configuring multiple loggers to share the same appender instance is therefore not
+ recommended.
+ </li>
+ </ul>
+
+ <h4>3.3. What are possible format characters for the
+ custom log message?</h4>
PatternLayout supports following set of format characters:<br>
- <li><b>%%</b> - a single percent sign</li>
- <li><b>%c</b> - the category</li>
- <li><b>%d</b> - the date\n
- Date format: The date format character may be followed by a date format
- specifier enclosed between braces. For example, %d{%H:%M:%S,%l} or %d{%d %m %Y %H:%M:%S,%l}.
- If no date format specifier is given then the following format is used:
- "Wed Jan 02 02:03:55 1980". The date format specifier admits the same syntax
- as the ANSI C function strftime, with 1 addition. The addition is the specifier
- %l for milliseconds, padded with zeros to make 3 digits.
- </li>
- <li><b>%m</b> - the message</li>
- <li><b>%n</b> - the platform specific line separator</li>
- <li><b>%p</b> - the priority</li>
- <li><b>%r</b> - milliseconds since this layout was created.</li>
- <li><b>%R</b> - seconds since Jan 1, 1970</li>
- <li><b>%u</b> - clock ticks since process start</li>
- <li><b>%x</b> - the NDC</li>
- <li><b>%t</b> - thread name</li>
-
- By default, ConversionPattern for PatternLayout is set to "%m%n".<br>
+ <ul>
+ <li>
+ <pre class="monospace">%%</pre>
+ - a single percent sign
+ </li>
+ <li>
+ <pre class="monospace">%c</pre>
+ - the category
+ </li>
+ <li>
+ <pre class="monospace">%d</pre>
+ - the date\n
+ Date format: The date format character may be followed by a date format
+ specifier enclosed between braces. For example,
+ <pre class="monospace">%d{%H:%M:%S,%l} or %d{%d %m %Y %H:%M:%S,%l}</pre>
+ .
+ If no date format specifier is given then the following format is used:
+ <pre class="monospace">"Wed Jan 02 02:03:55 1980"</pre>
+ . The date format specifier admits the same syntax
+ as the ANSI C function strftime, with 1 addition. The addition is the specifier
+ <pre class="monospace">%l</pre>
+ for milliseconds, padded with zeros to make 3 digits.
+ </li>
+ <li>
+ <pre class="monospace">%m</pre>
+ - the message
+ </li>
+ <li>
+ <pre class="monospace">%n</pre>
+ - the platform specific line separator
+ </li>
+ <li>
+ <pre class="monospace">%p</pre>
+ - the priority
+ </li>
+ <li>
+ <pre class="monospace">%r</pre>
+ - milliseconds since this layout was created.
+ </li>
+ <li>
+ <pre class="monospace">%R</pre>
+ - seconds since Jan 1, 1970
+ </li>
+ <li>
+ <pre class="monospace">%u</pre>
+ - clock ticks since process start
+ </li>
+ <li>
+ <pre class="monospace">%x</pre>
+ - the NDC
+ </li>
+ <li>
+ <pre class="monospace">%t</pre>
+ - thread name
+ </li>
+ </ul>
+ By default, ConversionPattern for PatternLayout is set to
+ <pre class="monospace">"%m%n"</pre>
+ .<br>
+
+ <h4>3.4. What log levels are available?</h4>
+ <p>Log4cpp provides the following log levels (priorities), ordered from lowest to highest severity:</p>
+
+ <ul>
+ <li>
+ <pre class="monospace">TRACE </pre>
+ - very fine-grained diagnostic information.
+ <i>Usage:</i> Function entry/exit, loop iterations, variable changes, or
+ high-frequency internal events during deep debugging.
+ </li>
+
+ <li>
+ <pre class="monospace">DEBUG </pre>
+ - detailed diagnostic information.
+ <i>Usage:</i> Debugging program logic, inspecting important state, or understanding
+ code flow during development.
+ </li>
+
+ <li>
+ <pre class="monospace">INFO </pre>
+ - general informational messages.
+ <i>Usage:</i> Normal application behavior such as startup, shutdown, configuration
+ loading, or key workflow steps.
+ </li>
+
+ <li>
+ <pre class="monospace">NOTICE</pre>
+ - normal but significant conditions.
+ <i>Usage:</i> Important events that are not errors but worth highlighting (e.g.,
+ configuration changes, feature toggles).
+ </li>
+
+ <li>
+ <pre class="monospace">WARN </pre>
+ - warning conditions.
+ <i>Usage:</i> Unexpected situations that are recoverable (e.g., missing optional
+ data, retries, deprecated API usage).
+ </li>
+
+ <li>
+ <pre class="monospace">ERROR </pre>
+ - error conditions.
+ <i>Usage:</i> Failures that affect a specific operation but do not stop the entire
+ application (e.g., failed request, file read error).
+ </li>
+
+ <li>
+ <pre class="monospace">CRIT </pre>
+ - critical conditions.
+ <i>Usage:</i> Serious failures impacting major components (e.g., subsystem
+ unavailable, database connection lost).
+ </li>
+
+ <li>
+ <pre class="monospace">ALERT </pre>
+ - action must be taken immediately.
+ <i>Usage:</i> Conditions requiring immediate intervention (e.g., data corruption
+ risk, critical resource exhaustion).
+ </li>
+
+ <li>
+ <pre class="monospace">FATAL </pre>
+ - severe errors causing program termination.
+ <i>Usage:</i> Unrecoverable errors leading to shutdown (e.g., inability to initialize
+ core components).
+ </li>
+ </ul>
+ <h4>3.5. How can I log a line in log4cpp?</h4>
+
+ <p>There are following ways to log a message:</p>
+
+ <ul>
+ <li>
+ <b>Use logging methods</b><br/>
+ Call a <code>Category</code>'s method corresponding to the log level and pass parameters.
+ <pre class="code">
+log4cpp::Category& logger = log4cpp::Category::getRoot();
+logger.debug("Debug message");
+logger.info("Info message # %d", 2);</pre>
+ </li>
+
+ <li>
+ <b>Use streaming</b><br/>
+ Log messages with C++ streams.
+ <pre class="code">
+logger.debugStream() << "Render " << loginpage << " address";
+logger << log4cpp::Priority::INFO << "Server " << servername << " started up";</pre>
+ </li>
+
+ <li>
+ <b>Use macros</b><br/>
+ Use formatted or streaming style macros.
+ <em>Note:</em> If the message's priority is less severe than the logger's priority, then the
+ arguments are <b>not evaluated</b>, avoiding unnecessary computation.
+ <pre class="code">
+LOG4CPP_DEBUG(logger, "Items left in stock: %d remaining", calcRemainder());
+LOG4CPP_INFO_S(logger, "Temperature in warehouse: " << readTemperature());</pre>
+ </li>
+ </ul>
+ <h4>3.6. How can I reduce logging overhead?</h4>
+
+ <p>Building complex log messages can introduce runtime overhead. You can reduce this overhead in several
+ ways:</p>
+
+ <ul>
+ <li>
+ <b>Use macros with appropriate log levels.</b> Log4cpp macros (e.g., <code>LOG4CPP_DEBUG</code>,
+ <code>LOG4CPP_INFO_S</code>) will compare message's priority to the logger’s level before
+ evaluating arguments, preventing unnecessary computations when a message is not logged due to
+ its lower priority.
+ </li>
+ <li>
+ <b>Completely remove lower-severity log messages at compile time.</b> By defining the desired
+ level before including the macros header, all log macros with a priority lower than <code>LOG4CPP_ACTIVE_LEVEL</code>
+ are removed at compile time, resulting in zero runtime overhead. For example, to remove all logs
+ below
+ <code>INFO</code> level in current compilation unit:
+ <pre class="code">
+#define LOG4CPP_ACTIVE_LEVEL LOG4CPP_PRIORITY_INFO
+#include <log4cpp/LogMacros.hh></pre>
+ </li>
+ </ul>
+
<h3>4. PROBLEMS AND ERROR MESSAGES</h3>
<h4>4.1. I get 'Naming collision for 'ERROR' detected. Please
read the FAQ for a workaround.'</h4>
@@ -697,49 +883,55 @@ A3.log.1
<div class="chapter">
<h2><a id="git">Git Repository</a></h2>
<p>
- Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">SourceForge Git
- page</a> since version 1.1.1, CVS repo is stale now.
+ Log4cpp is hosted in a Git repository on <a href="https://sourceforge.net/p/log4cpp/codegit/">SourceForge</a>
+ since version 1.1.1.
</p>
- <p>A mirror of the Git repository is also available on GitHub: <a
- href="https://github.com/log4cpp/log4cpp?utm_source=log4cpp.sourceforge.net">https://github.com/log4cpp/log4cpp</a>
+
+ <p>
+ A mirror of the Git repository is also available on GitHub:
+ <a href="https://github.com/log4cpp/log4cpp?utm_source=log4cpp.sourceforge.net">https://github.com/log4cpp/log4cpp</a>
</p>
+
<p>
To start working with a freshly checked out log4cpp repository, run <b><code>./autogen.sh</code></b>
- first. This will create <code>./configure</code> and the necessary <code>Makefile.in</code>'s.
- You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4 (<a
+ first.
+ This will generate the <code>./configure</code> script and the required <code>Makefile.in</code>
+ files.
+ You will need at least autoconf 2.50, automake 1.6.0, and libtool 1.4 (the <a
href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system).
</p>
- <p>Log4cpp of older versions (prior to version 1.1.1) is available also with CVS, see the <a
- href="https://sourceforge.net/p/log4cpp/code/">SourceForge CVS page</a> for instructions.</p>
- <small>
- CVS had two branches:
- <table>
- <tbody>
- <tr>
- <td>MAIN</td>
- <td>for log4cpp development</td>
- </tr>
- <tr>
- <td>BRANCH_MAINT_0_2</td>
- <td>for maintenance of log4cpp-stable (0.2.x)</td>
- </tr>
- </tbody>
- </table>
- <br>
- </small>
- <a href="#begin">^</a>
+
+ <p>
+ Older versions of log4cpp (prior to 1.1.1) are available via CVS.
+ See the <a href="https://sourceforge.net/p/log4cpp/code/">SourceForge CVS page</a> for instructions.
+ The CVS repository is no longer maintained.
+ </p> <a href="#begin">^</a>
</div>
<div class="chapter">
<h2><a id="releases">Releases</a></h2>
- <p>
- WARNING: releases from the development branch are a 'work in progress' and may fail to build, crash
- or redecorate your desktop.
- </p>
<p>Each release will receive a tag named REL_x_y_z or prefixed with REL_x.y.z</p>
+ <p><a href="https://sourceforge.net/p/log4cpp/codegit/ref/master/tags/">Git tags</a></p>
<small>
<dl>
+ <dt>master branch (26 March 2026)</dt>
+ <dd>Fix Y2038 issue in Timestamp class (32-bit seconds field overflow).
+ Use time_t for seconds to avoid truncation/overflow on platforms where time_t is 64-bit.
+ Thanks to Adrien Destugues for reporting bug #153.
+ </dd>
+ <dd>DailyRollingFileAppender: more detailed documentation, added safety checks to
+ implementation, refine tests
+ </dd>
+ <dd>Add compile-time <code>printf</code> format checking to Category logging methods.
+
+ Enhance class log4cpp::Category to enable compile-time checking of
+ printf-style format strings and arguments using compiler attributes.
+ Fixes bug #155 reported by Adrien Destugues.
+ </dd>
+ <dd>New logging level <code>TRACE</code> with priority value <code>800</code> for fine-grained
+ diagnostic logging, trace-level methods and macros.
+ </dd>
<dt>1.1.6 - master branch (12 March 2026)</dt>
<dd>CMake support is enhanced. Building examples is enabled via the CMake's <code>LOG4CPP_BUILD_EXAMPLES</code>
option.
@@ -944,7 +1136,6 @@ A3.log.1
<dt>0.2.0 (10 December 2000)</dt>
<dd>log4cpp now uses autoconf and automake.</dd>
</dl>
- <p><a href="https://sourceforge.net/p/log4cpp/codegit/ref/master/tags/">Git tags</a></p>
</small>
<a href="#begin">^</a>
</div>
diff --git a/doc/html/styles.css b/doc/html/styles.css
index dbe12be..2805d82 100644
--- a/doc/html/styles.css
+++ b/doc/html/styles.css
@@ -90,4 +90,11 @@ DT {
background-color: rgb(240, 240, 240);
white-space: pre-wrap;
word-wrap: break-word;
+}
+
+.monospace {
+ display:inline;
+ background-color: rgb(240, 240, 240);
+ white-space: pre-wrap;
+ word-wrap: break-word;
}
\ No newline at end of file
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 1c9cc027e9e9cdf2ca76295e32edb7c2771bcca1
Author: Alexander Perepelkin <san...@us...>
Date: Thu Mar 26 19:41:15 2026 +0100
Changelog
index.html
Refine text, add entries to FAQ, add changelog
diff --git a/ChangeLog b/ChangeLog
index 4241df1..a934f86 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2026-03-26 19:41 sanchouss_
+ * Fix Y2038 issue in Timestamp class (32-bit seconds field overflow).
+ Use time_t for seconds to avoid truncation/overflow on platforms where time_t is 64-bit.
+ Thanks to Adrien Destugues for reporting bug #153.
+
+ * DailyRollingFileAppender: more detailed documentation, added safety checks to implementation, refine tests
+
+ * Add compile-time printf format checking to Category logging methods.
+ Enhance class log4cpp::Category to enable compile-time checking of printf-style format strings and arguments using compiler attributes.
+ Fixes bug #155 reported by Adrien Destugues.
+
+ * New logging level TRACE with priority value 800 for fine-grained diagnostic logging, trace-level methods and macros.
+
2026-02-20 20:37 sanchouss_
* Add formatted and streaming log4cpp macros with compile-time stripping
- Formatted macros (LOG4CPP_DEBUG, LOG4CPP_INFO, etc.) support variadic arguments
diff --git a/doc/html/index.html b/doc/html/index.html
index e7a8665..5961975 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -18,7 +18,8 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2026-02-27</span> |
+2026-03-26</span> | <span> <a href="https://sourceforge.net/projects/log4cpp/">Sourceforge Home</a>
+</span> |
</div>
<hr class="delimiter">
<div id="projectpage">
@@ -426,42 +427,227 @@ You should have received a copy of the GNU Lesser General Public<br>License alon
<h3>3. USAGE</h3>
<h4>3.1. I've succesfully compiled log4cpp, now how do I use this
stuff?</h4>
- Have a glance at <a title="Simple example" href="#simpleexample">Simple
- example</a> and <a title="Properties file example" href="#propfile">Properties file example</a>.
- For some small examples using log4cpp, see the 'tests' subdirectory.
- Also see the documentation section for a pointer for API documentation
- and more usage information.
+ <ul>
+ <li>Have a glance at <a title="Simple example" href="#simpleexample">Simple
+ example</a> and <a title="Properties file example" href="#propfile">Properties file example</a>.
+ </li>
+ <li>For additional small examples using log4cpp, see the <code>tests</code> subdirectory.</li>
+ <li>Examples on using log4cpp with CMake enabled projects are in <code>examples/cmake_usages</code>
+ subdirectory.
+ </li>
+ <li>Check the <a href="http://log4cpp.sourceforge.net/api/index.html">Doxygen generated
+ API</a> section for API reference and more usage information.
+ </li>
+ </ul>
<h4>3.2. Is log4cpp thread-safe?</h4>
- The same instance of a log4cpp::Category object (a logger) can be used simultaneously from multiple
- threads without explicit synchronization. Concurrent access to appenders is handled by the logger
- itself. It locks an internal mutex each time it writes to an appender. Therefore, it is safe, for
- example, for multiple threads to write to the same logger that appends to the same file.
- However, if log4cpp is configured in such a way that two different loggers append to the same appender
- (for example, the same file appender), the framework cannot guarantee proper synchronization between
... 352 lines suppressed ...
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-03-24 17:59:09
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, bug-153-time-int32-2k38 has been created
at 338670431fc9cc41b95f792ddeef20a203d112a2 (commit)
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-03-24 17:58:39
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 338670431fc9cc41b95f792ddeef20a203d112a2 (commit)
via 8db8e662654a169238b28c72a4d56d0c3bfecd81 (commit)
via 1c4bb3784914853637df9387712a6cde9135931b (commit)
from 0bb6b8e6f2609331aa4907ac699bfaee563ffbd5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
include/log4cpp/TimeStamp.hh | 7 +-
src/DailyRollingFileAppender.cpp | 21 +--
src/Localtime.cpp | 15 +-
src/Localtime.hh | 7 +-
src/PatternLayout.cpp | 2 +-
src/TimeStamp.cpp | 2 +-
tests/testDailyRollingFileAppender.cpp | 311 +++++++++++++++++----------------
tests/testbench.cpp | 6 +-
8 files changed, 189 insertions(+), 182 deletions(-)
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-03-20 22:07:49
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 0bb6b8e6f2609331aa4907ac699bfaee563ffbd5 (commit)
from 873a43f6dcd4053d89b9ea43bcfd49a5ec0e98e2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 0bb6b8e6f2609331aa4907ac699bfaee563ffbd5
Author: Alexander Perepelkin <san...@us...>
Date: Thu Mar 19 20:25:12 2026 +0100
DailyRollingFileAppender: more detailed documentation, added safety checks to implementation, refine tests
diff --git a/include/log4cpp/DailyRollingFileAppender.hh b/include/log4cpp/DailyRollingFileAppender.hh
index b6a7f0f..5bdb302 100644
--- a/include/log4cpp/DailyRollingFileAppender.hh
+++ b/include/log4cpp/DailyRollingFileAppender.hh
@@ -18,16 +18,24 @@
namespace log4cpp {
/**
- DailyRollingFileAppender is a FileAppender that rolls over the logfile once
- the next day starts.
- @since 1.1.2
- **/
+ * DailyRollingFileAppender is a FileAppender that rolls over the logfile when a log event is recorded on a
+ * different day than the previous log event.
+ * SupportsDailyRollingFileAppender: more detailed documentation, added safety checks to implementation, refine
+ * tests automatic cleanup of old log files based on a configurable retention period. Log files older than (\c
+ * _maxDaysToKeep) are removed. The default value is \c maxDaysToKeepDefault.
+ *
+ * @since 1.1.2
+ */
class LOG4CPP_EXPORT DailyRollingFileAppender : public FileAppender {
public:
DailyRollingFileAppender(const std::string& name, const std::string& fileName,
unsigned int maxDaysToKeep = maxDaysToKeepDefault, bool append = true,
mode_t mode = 00644);
+ /**
+ * Set \c _maxDaysToKeep.
+ * @param maxDaysToKeep if not positive, then \c maxDaysToKeepDefault is used instead.
+ */
virtual void setMaxDaysToKeep(unsigned int maxDaysToKeep);
virtual unsigned int getMaxDaysToKeep() const;
@@ -38,7 +46,11 @@ namespace log4cpp {
protected:
virtual void _append(const LoggingEvent& event);
+ /**
+ * Maximum number of days to keep log files on disk. Files older than this limit are deleted during rollover.
+ */
unsigned int _maxDaysToKeep;
+
/**
* last log's file creation time (or last modification if appender just created)
*/
diff --git a/src/DailyRollingFileAppender.cpp b/src/DailyRollingFileAppender.cpp
index c6bb298..b464ed9 100644
--- a/src/DailyRollingFileAppender.cpp
+++ b/src/DailyRollingFileAppender.cpp
@@ -17,6 +17,7 @@
#include <cstdio>
#include <cstdlib>
#include <cstring>
+#include <errno.h>
#include <fcntl.h>
#include <iostream>
#include <log4cpp/Category.hh>
@@ -31,10 +32,16 @@
#include <sstream>
#endif
-#ifndef WIN32 // only available on Win32
+#ifndef WIN32
#include <dirent.h>
#endif
+#ifndef WIN32
+#define PATHDELIMITER "/"
+#else
+#define PATHDELIMITER "\\"
+#endif
+
namespace log4cpp {
unsigned int DailyRollingFileAppender::maxDaysToKeepDefault = 30;
@@ -54,15 +61,22 @@ namespace log4cpp {
} else {
t = statBuf.st_mtime;
}
-#ifndef WIN32 // only available on Win32
- localtime_r(&t, &_logsTime);
+
+#ifndef WIN32
+ struct tm* lt_res = localtime_r(&t, &_logsTime);
+ if (lt_res == NULL) {
+ std::cerr << "Error converting the specified time to local calendar time" << std::endl;
+ }
#else
- localtime_s(&_logsTime, &t);
+ errno_t lt_res = localtime_s(&_logsTime, &t); // only available on Win32
+ if (lt_res != NULL) {
+ std::cerr << "Error converting the specified time to local calendar time: err " << lt_res << std::endl;
+ }
#endif
}
void DailyRollingFileAppender::setMaxDaysToKeep(unsigned int maxDaysToKeep) {
- _maxDaysToKeep = maxDaysToKeep;
+ _maxDaysToKeep = maxDaysToKeep != 0 ? maxDaysToKeep : maxDaysToKeepDefault;
}
unsigned int DailyRollingFileAppender::getMaxDaysToKeep() const {
@@ -73,37 +87,35 @@ namespace log4cpp {
std::ostringstream filename_s;
int res_close = ::close(_fd);
if (res_close != 0) {
- std::cerr << "Error closing file " << _fileName << std::endl;
+ std::cerr << "Error closing file " << _fileName << " _fd " << _fd << std::endl;
}
filename_s << _fileName << "." << _logsTime.tm_year + 1900 << "-" << std::setfill('0') << std::setw(2)
- << _logsTime.tm_mon + 1 << "-" << std::setw(2) << _logsTime.tm_mday << std::ends;
+ << _logsTime.tm_mon + 1 << "-" << std::setw(2) << _logsTime.tm_mday;
const std::string lastFn = filename_s.str();
int res_rename = ::rename(_fileName.c_str(), lastFn.c_str());
if (res_rename != 0) {
- std::cerr << "Error renaming file " << _fileName << " to " << lastFn << std::endl;
+ std::cerr << "Error renaming file " << _fileName << " to " << lastFn << " errno: " << errno << std::endl;
}
_fd = ::open(_fileName.c_str(), _flags, _mode);
if (_fd == -1) {
- std::cerr << "Error opening file " << _fileName << std::endl;
+ std::cerr << "Error opening file " << _fileName << " errno: " << errno << std::endl;
}
const time_t oldest = time(NULL) - _maxDaysToKeep * 60 * 60 * 24;
-#ifndef WIN32
-#define PATHDELIMITER "/"
-#else
-#define PATHDELIMITER "\\"
-#endif
// iterate over files around log file and delete older with same prefix
const std::string::size_type last_delimiter = _fileName.rfind(PATHDELIMITER);
const std::string dirname((last_delimiter == std::string::npos) ? "." : _fileName.substr(0, last_delimiter));
- const std::string filname((last_delimiter == std::string::npos)
- ? _fileName
- : _fileName.substr(last_delimiter + 1, _fileName.size() - last_delimiter - 1));
-#ifndef WIN32 // only available on Win32
+ const std::string filename((last_delimiter == std::string::npos)
+ ? _fileName
+ : _fileName.substr(last_delimiter + 1, _fileName.size() - last_delimiter - 1));
+ const size_t prefixLen = filename.length();
+
+ // iterate over directory and delete files older than time_t oldest
+#ifndef WIN32
struct dirent** entries;
- int nentries = scandir(dirname.c_str(), &entries, 0, alphasort);
+ const int nentries = scandir(dirname.c_str(), &entries, 0, alphasort);
if (nentries < 0)
return;
for (int i = 0; i < nentries; i++) {
@@ -114,9 +126,16 @@ namespace log4cpp {
free(entries[i]);
continue;
}
- if (statBuf.st_mtime < oldest && strstr(entries[i]->d_name, filname.c_str())) {
- std::cout << " Deleting " << fullfilename.c_str() << std::endl;
- ::unlink(fullfilename.c_str());
+ if (statBuf.st_mtime < oldest) {
+ // ensure entryName's prefix is filename + '.'
+ const char* entryName = entries[i]->d_name;
+ const size_t entryLen = std::strlen(entryName);
+ if (entryLen > prefixLen && strncmp(entryName, filename.c_str(), prefixLen) == 0 &&
+ entryName[prefixLen] == '.') {
+ if (::unlink(fullfilename.c_str())) {
+ std::cerr << "Error deleting file " << fullfilename.c_str() << " errno: " << errno << std::endl;
+ }
+ }
}
free(entries[i]);
}
@@ -133,8 +152,9 @@ namespace log4cpp {
const std::string fullfilename = dirname + PATHDELIMITER + ffd.cFileName;
int res = ::stat(fullfilename.c_str(), &statBuf);
if (res != -1 && statBuf.st_mtime < oldest && !(ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
- std::cout << "Deleting " << fullfilename << "\n";
- ::unlink(fullfilename.c_str());
+ if (::unlink(fullfilename.c_str())) {
+ std::cerr << "Error deleting file " << fullfilename.c_str() << " errno: " << errno << std::endl;
+ }
}
} while (FindNextFile(hFind, &ffd) != 0);
@@ -151,7 +171,7 @@ namespace log4cpp {
struct tm now;
time_t t = time(NULL);
-#ifndef WIN32 // only available on Win32
+#ifndef WIN32
bool timeok = localtime_r(&t, &now) != NULL;
#else
bool timeok = localtime_s(&now, &t) == 0;
diff --git a/tests/testDailyRollingFileAppender.cpp b/tests/testDailyRollingFileAppender.cpp
index 40fef1d..fbe2e08 100644
--- a/tests/testDailyRollingFileAppender.cpp
+++ b/tests/testDailyRollingFileAppender.cpp
@@ -33,7 +33,7 @@
using namespace log4cpp;
using namespace std;
static const char* const test_message = "message";
-static const char* const daily_file_prefix = "dailyrolling_file.log";
+static const char* const daily_file_prefix = "dailyrolling_code_config.log";
#define NESTEDDIR "nesteddir"
#ifndef WIN32
#define PATHDELIMITER "/"
@@ -43,7 +43,7 @@ static const char* const daily_file_prefix = "dailyrolling_file.log";
const char* const nesteddirname = NESTEDDIR PATHDELIMITER;
class DailyRollingTest {
- DailyRollingFileAppender *dailyApp, *nestedDirDailyApp;
+ DailyRollingFileAppender *workingDirDailyApp, *nestedDirDailyApp;
public:
bool remove_impl(const char* filename) {
@@ -66,11 +66,13 @@ class DailyRollingTest {
if (!remove_files())
return false;
+ std::cout << "Configuring instance with code " << std::endl;
+
Category& root = Category::getRoot();
- dailyApp = new DailyRollingFileAppender("daily-rolling-appender", daily_file_prefix, 1);
+ workingDirDailyApp = new DailyRollingFileAppender("daily-rolling-appender", daily_file_prefix, 1);
nestedDirDailyApp = new DailyRollingFileAppender("nesteddir-daily-rolling-appender",
std::string(nesteddirname).append(daily_file_prefix), 1);
- root.addAppender(dailyApp);
+ root.addAppender(workingDirDailyApp);
root.addAppender(nestedDirDailyApp);
root.setPriority(Priority::DEBUG);
@@ -81,10 +83,10 @@ class DailyRollingTest {
Category::getRoot().debugStream() << test_message << 1;
Category::getRoot().debugStream() << test_message << 2;
Category::getRoot().debugStream() << test_message << 3;
- Category::getRoot().debugStream() << "The message before rolling over attempt";
- dailyApp->rollOver();
+ Category::getRoot().debugStream() << "This message goes before rolling over attempt";
+ workingDirDailyApp->rollOver();
nestedDirDailyApp->rollOver();
- Category::getRoot().debugStream() << "The message after rolling over attempt";
+ Category::getRoot().debugStream() << "This message goes after rolling over attempt";
Category::getRoot().debugStream() << test_message << 4;
Category::getRoot().debugStream() << test_message << 5;
}
@@ -101,10 +103,13 @@ class DailyRollingTest {
return true;
}
+ void teardown() {
+ std::cout << "Shutdown code configured instance" << std::endl;
+ Category::shutdown();
+ }
+
bool check_log_files() {
bool result = exists(daily_file_prefix);
-
- Category::shutdown();
return result && remove_files();
}
};
@@ -112,16 +117,15 @@ class DailyRollingTest {
int testOnlyDailyRollingFileAppender() {
DailyRollingTest dailyTest;
if (!dailyTest.setup()) {
- cout << "Setup has failed. Check for permissions on files " << daily_file_prefix << "*'.\n";
+ std::cerr << "Setup has failed. Check for permissions on files " << daily_file_prefix << "*'.\n";
return -1;
}
dailyTest.make_log_files();
+ bool check = dailyTest.check_log_files();
+ dailyTest.teardown();
- if (dailyTest.check_log_files())
- return 0;
- else
- return -1;
+ return check ? 0 : -1;
}
int testConfigDailyRollingFileAppender() {
@@ -140,6 +144,7 @@ int testConfigDailyRollingFileAppender() {
initFileName = std::string(srcdir) + PATHDELIMITER + initFileName;
}
+ std::cout << "Configuring instance with properties file " << initFileName << std::endl;
log4cpp::PropertyConfigurator::configure(initFileName);
} catch (log4cpp::ConfigureFailure& f) {
std::cout << "Configure Problem " << f.what() << "($srcdir=" << ((srcdir != NULL) ? srcdir : "NULL") << ")"
@@ -156,35 +161,49 @@ int testConfigDailyRollingFileAppender() {
sub1.error("sub1 error");
sub1.warn("sub1 warn");
+ std::cout << "Shutdown file configured instance" << std::endl;
log4cpp::Category::shutdown();
return 0;
}
-// Note: this test changes system time. Run it only manually
-namespace OnlyManualTesting {
+// Note: this test changes system time. Run it only manually, will require admin privileges
+class OnlyManualTesting {
- const char* absolutePathCategoryName = "absolutePathCategory";
+ const char* manualTimeTestCategoryName = "manualTimeTestCategory";
const int maxDaysToKeep = 3;
#if defined(WIN32)
- const char* logFilename = "C:\\Temp\\log4cpp\\dailyrolling_abs_path_file.log";
- const char* logPathname = "C:\\Temp\\log4cpp";
+ // absolute paths should pre-exist, mkdir will not create nested dirs
+ // const char* logFilename = "C:\\Temp\\log4cpp\\dailyrolling_time_test_file.log";
+ // const char* logPathname = "C:\\Temp\\log4cpp";
+ const char* logFilename = ".\\logs\\dailyrolling_time_test_file.log";
+ const char* logPathname = ".\\logs";
#else
- const char* logFilename = "/var/log/log4cpp/dailyrolling_abs_path_file.log";
- const char* logPathname = "/var/log/log4cpp";
+ const char* logFilename = "./logs/dailyrolling_time_test_file.log";
+ const char* logPathname = "./logs";
#endif
+ public:
void setupManualEntryLog() {
+ std::cout << "Configuring instance with code for time jumping tests, using dir " << logPathname << std::endl;
+
+ int dirOk;
#if defined(WIN32)
- if (access(logPathname, 0) != 0) {
- mkdir(logPathname);
+ dirOk = access(logPathname, 0);
+ if (dirOk != 0) {
+ dirOk = mkdir(logPathname);
}
#else
- if (access(logPathname, F_OK) != 0) {
- mkdir(logPathname, 644);
+ dirOk = access(logPathname, F_OK);
+ if (dirOk != 0) {
+ dirOk = mkdir(logPathname, 0755);
}
#endif
+ if (dirOk != 0) {
+ std::cerr << "Failed to create dir " << logPathname << std::endl;
+ }
+
log4cpp::PatternLayout* ostreamLayout = new log4cpp::PatternLayout();
ostreamLayout->setConversionPattern("%d: %p %c %x: %m %n");
log4cpp::Appender* ostreamAppender = new log4cpp::OstreamAppender("ostreamAppender", &std::cout);
@@ -196,7 +215,8 @@ namespace OnlyManualTesting {
new log4cpp::DailyRollingFileAppender("fileAppender", logFilename, maxDaysToKeep);
fileAppender->setLayout(fileLayout);
- log4cpp::Category& absolutePathCategory = log4cpp::Category::getInstance(std::string(absolutePathCategoryName));
+ log4cpp::Category& absolutePathCategory =
+ log4cpp::Category::getInstance(std::string(manualTimeTestCategoryName));
absolutePathCategory.setAdditivity(false);
absolutePathCategory.addAppender(ostreamAppender);
@@ -204,9 +224,8 @@ namespace OnlyManualTesting {
absolutePathCategory.setPriority(log4cpp::Priority::DEBUG);
}
- int checkThatNoMoreThanNLogFilesPresent(const std::string _fileName, int n);
-
int jumpToFuture(int seconds) {
+ std::cout << "Jumping " << seconds << " seconds in system time..." << std::endl;
#if defined(WIN32)
SYSTEMTIME now;
@@ -241,31 +260,38 @@ namespace OnlyManualTesting {
return -1;
}
#endif
+ const time_t t = time(NULL);
+ std::cout << "Jumped to " << ctime(&t) << std::endl;
return 0;
}
int makeManualEntryLog() {
const int totalLinesCount = 14, linesPerDay = 3, jumpPeriod = 24 * 60 * 60 + 1;
- int i = 0, future = 0;
-
- log4cpp::Category& absolutePathCategory = log4cpp::Category::getInstance(std::string(absolutePathCategoryName));
-
- // 1. update system time (eg: use 'date' command on Linux) manually when test program is running here (at least
- // 4 times)
- absolutePathCategory.debugStream() << "debug line " << i;
- while (++i <= totalLinesCount) {
- if (i % linesPerDay == 0) {
+ int i = 0, jumpedSecondsAlltogether = 0, expectedRollover = 0;
+
+ log4cpp::Category& absolutePathCategory =
+ log4cpp::Category::getInstance(std::string(manualTimeTestCategoryName));
+
+ std::cout << "Logging some lines... " << std::endl;
+ // 1. Emulate several days uptime:
+ // * log linesPerDay
+ // * update system time (eg: use 'date' command on Linux) manually when test program is running here
+ // * expect file rollover happens on next logging
+ while (expectedRollover < maxDaysToKeep + 1) {
+ if (++i % linesPerDay == 0) {
if (jumpToFuture(jumpPeriod) == -1)
return -1;
- future += jumpPeriod;
+ jumpedSecondsAlltogether += jumpPeriod;
+ ++expectedRollover;
}
absolutePathCategory.debugStream() << "debug line " << i;
}
- if (jumpToFuture(0 - future) == -1)
+ if (jumpToFuture(0 - jumpedSecondsAlltogether) == -1)
return -1;
- // 2. check the number of files in /var/log/log4cpp ( <= maxDaysToKeep) (+1 to allow consequent runs of test)
+ // 2. check that the number of files in dir logPathname is ( <= maxDaysToKeep) (+1 to allow consequent runs of
+ // test)
if (checkThatNoMoreThanNLogFilesPresent(std::string(logFilename), maxDaysToKeep + 1) == -1)
return -1;
@@ -273,7 +299,7 @@ namespace OnlyManualTesting {
}
// Note: this test changes system time. Run it only manually
- int checkThatNoMoreThanNLogFilesPresent(const std::string _fileName, int n) {
+ int checkThatNoMoreThanNLogFilesPresent(const std::string _fileName, int maxAllowedFileNumber) {
// iterate over files around log file and count files with same prefix
const std::string::size_type last_delimiter = _fileName.rfind(PATHDELIMITER);
const std::string dirname((last_delimiter == std::string::npos) ? "." : _fileName.substr(0, last_delimiter));
@@ -281,7 +307,7 @@ namespace OnlyManualTesting {
? _fileName
: _fileName.substr(last_delimiter + 1, _fileName.size() - last_delimiter - 1));
int logFilesCount(0);
-#ifndef WIN32 // only available on Win32
+#ifndef WIN32
struct dirent** entries;
int nentries = scandir(dirname.c_str(), &entries, 0, alphasort);
if (nentries < 0)
@@ -309,29 +335,39 @@ namespace OnlyManualTesting {
hFind = INVALID_HANDLE_VALUE;
}
#endif
- if (logFilesCount > n) {
- std::cerr << "Too many log files in the dir " << dirname << ": " << logFilesCount << std::endl;
+ if (logFilesCount > maxAllowedFileNumber) {
+ std::cerr << "Too many log files in the dir " << dirname << ": " << logFilesCount
+ << ", expected no more than " << maxAllowedFileNumber << std::endl;
} else {
- std::cout << "Daily log files in the dir " << dirname << ": " << logFilesCount << std::endl;
+ std::cout << "Daily log files in the dir " << dirname << ": " << logFilesCount << ", expected no more than "
+ << maxAllowedFileNumber << std::endl;
}
- return (logFilesCount <= n) ? 0 : -1;
+ return (logFilesCount <= maxAllowedFileNumber) ? 0 : -1;
}
- int testDailyRollingFileAppenderChangeDateManualOnly() {
- setupManualEntryLog();
- return makeManualEntryLog();
+ void teardown() {
+ std::cout << "Shutdown manual run instance" << std::endl;
+ Category::shutdown();
}
-} // namespace OnlyManualTesting
+};
+
+int testDailyRollingFileAppenderChangeDateManualOnly() {
+ OnlyManualTesting manualTesting;
+ manualTesting.setupManualEntryLog();
+ int res = manualTesting.makeManualEntryLog();
+ manualTesting.teardown();
+ return res;
+}
int main() {
int res = testOnlyDailyRollingFileAppender();
if (!res)
res = testConfigDailyRollingFileAppender();
- // Note: this test changes system time. Run it only manually
... 82 lines suppressed ...
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-03-17 19:27:31
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 873a43f6dcd4053d89b9ea43bcfd49a5ec0e98e2 (commit)
via 007e1a39add173f6fc97e61a4cc91cfd4081d542 (commit)
via 0ad3b12fd36b87fc3d267dd56ece334b8892b3ed (commit)
via f3d344c3405a51f1def9c2e61654b215deb13e4f (commit)
via 75659e1856147ad05e91a26b992b82a9d752ae3c (commit)
via a96863fa6829215e893bb5541cdf9012ee7c11af (commit)
from 5ce81a79fe9368e984165318d9ddb1f383e235dc (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 873a43f6dcd4053d89b9ea43bcfd49a5ec0e98e2
Author: Alexander Perepelkin <san...@us...>
Date: Sat Mar 14 21:04:26 2026 +0100
fix msg
diff --git a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
index 98b7c7b..399b5fd 100644
--- a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
+++ b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
@@ -12,7 +12,7 @@ int main() {
log4cpp::PropertyConfigurator::configure(initFileName);
log4cpp::Category &root = log4cpp::Category::getRoot();
- root.info("Hello, Hello, %s %s library as cmake subdirectory!!",
+ root.info("Hello, %s %s library as cmake subdirectory!",
LOG4CPP_PACKAGE_NAME, LOG4CPP_PACKAGE_VERSION);
return 0;
}
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 873a43f6dcd4053d89b9ea43bcfd49a5ec0e98e2
Author: Alexander Perepelkin <san...@us...>
Date: Sat Mar 14 21:04:26 2026 +0100
fix msg
diff --git a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
index 98b7c7b..399b5fd 100644
--- a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
+++ b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
@@ -12,7 +12,7 @@ int main() {
log4cpp::PropertyConfigurator::configure(initFileName);
log4cpp::Category &root = log4cpp::Category::getRoot();
- root.info("Hello, Hello, %s %s library as cmake subdirectory!!",
+ root.info("Hello, %s %s library as cmake subdirectory!",
LOG4CPP_PACKAGE_NAME, LOG4CPP_PACKAGE_VERSION);
return 0;
}
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 873a43f6dcd4053d89b9ea43bcfd49a5ec0e98e2
Author: Alexander Perepelkin <san...@us...>
Date: Sat Mar 14 21:04:26 2026 +0100
fix msg
diff --git a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
index 98b7c7b..399b5fd 100644
--- a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
+++ b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
@@ -12,7 +12,7 @@ int main() {
log4cpp::PropertyConfigurator::configure(initFileName);
log4cpp::Category &root = log4cpp::Category::getRoot();
- root.info("Hello, Hello, %s %s library as cmake subdirectory!!",
+ root.info("Hello, %s %s library as cmake subdirectory!",
LOG4CPP_PACKAGE_NAME, LOG4CPP_PACKAGE_VERSION);
return 0;
}
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 873a43f6dcd4053d89b9ea43bcfd49a5ec0e98e2
Author: Alexander Perepelkin <san...@us...>
Date: Sat Mar 14 21:04:26 2026 +0100
fix msg
diff --git a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
index 98b7c7b..399b5fd 100644
--- a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
+++ b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
@@ -12,7 +12,7 @@ int main() {
log4cpp::PropertyConfigurator::configure(initFileName);
log4cpp::Category &root = log4cpp::Category::getRoot();
- root.info("Hello, Hello, %s %s library as cmake subdirectory!!",
+ root.info("Hello, %s %s library as cmake subdirectory!",
LOG4CPP_PACKAGE_NAME, LOG4CPP_PACKAGE_VERSION);
return 0;
}
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 873a43f6dcd4053d89b9ea43bcfd49a5ec0e98e2
Author: Alexander Perepelkin <san...@us...>
Date: Sat Mar 14 21:04:26 2026 +0100
fix msg
diff --git a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
index 98b7c7b..399b5fd 100644
--- a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
+++ b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
@@ -12,7 +12,7 @@ int main() {
log4cpp::PropertyConfigurator::configure(initFileName);
log4cpp::Category &root = log4cpp::Category::getRoot();
- root.info("Hello, Hello, %s %s library as cmake subdirectory!!",
+ root.info("Hello, %s %s library as cmake subdirectory!",
LOG4CPP_PACKAGE_NAME, LOG4CPP_PACKAGE_VERSION);
return 0;
}
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 873a43f6dcd4053d89b9ea43bcfd49a5ec0e98e2
Author: Alexander Perepelkin <san...@us...>
Date: Sat Mar 14 21:04:26 2026 +0100
fix msg
diff --git a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
index 98b7c7b..399b5fd 100644
--- a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
+++ b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
@@ -12,7 +12,7 @@ int main() {
log4cpp::PropertyConfigurator::configure(initFileName);
log4cpp::Category &root = log4cpp::Category::getRoot();
- root.info("Hello, Hello, %s %s library as cmake subdirectory!!",
+ root.info("Hello, %s %s library as cmake subdirectory!",
LOG4CPP_PACKAGE_NAME, LOG4CPP_PACKAGE_VERSION);
return 0;
}
-----------------------------------------------------------------------
Summary of changes:
CMakeLists.txt | 2 +-
configure.in | 2 +-
doc/html/index.html | 4 +-
.../log4cpp_as_subproject.cpp | 2 +-
include/log4cpp/Category.hh | 109 +++++++++++++++++----
include/log4cpp/LogMacros.hh | 82 +++++++++++++---
include/log4cpp/Priority.hh | 5 +-
include/log4cpp/config-project-version.h | 6 +-
src/Category.cpp | 14 +++
src/NTEventLogAppender.cpp | 1 +
src/Priority.cpp | 12 ++-
tests/testCategory.cpp | 1 +
tests/testPriority.cpp | 90 ++++++++++++++++-
tests/testPropConfig.cpp | 7 +-
tests/testPropConfig.log4cpp.nt.properties | 13 ++-
tests/testPropConfig.log4cpp.properties | 17 ++--
tests/test_convenience.cpp | 9 ++
17 files changed, 317 insertions(+), 59 deletions(-)
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-03-14 10:31:32
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The annotated tag, REL_1.1.6_Mar_12_2026 has been created
at 65383775486b1f45f9dac09b953c8c11fa8eccd8 (tag)
tagging 5ce81a79fe9368e984165318d9ddb1f383e235dc (commit)
replaces REL_1.1.5_Dec_01_2025
tagged by Alexander Perepelkin
on Sat Mar 14 10:53:41 2026 +0100
- Log -----------------------------------------------------------------
log4cpp-1.1.6, 12 Mar 2026
Alexander Perepelkin (36):
index.html, styles.css
index.html, v.1.1.5
.clang-format, BasedOnStyle: LLVM, with only minor tweaks to stay closer to the most of the current files
Adjust comments style for the fields, add missing
Reformat source codebase automatically with clang-format-21
fix type conversion warnings
index.html, ChangeLog
Exclude documentation and configuration from Github language statistics
Address few cmake leftovers
Replace global commands with targeted ones; replace duplicates with calls to macro
Export targets for cmake install; keep capsed targets as aliases; add versioning for exports. config.h is for export
Building examples is enabled via the LOG4CPP_BUILD_EXAMPLES option. CMake usage examples are provided for both scenarios: importing a CMake-installed log4cpp library and using log4cpp as a CMake subproject. Both shared and static library variants are demonstrated.
Emulate autotools behaviour and generate include/log4cpp/config.h from Autotools-style config.h.in
Small fixes for the tests
Exporting class Properties for the testProperties.cpp to run on Windows
CMake: add test build support using CTest
Bunch of renaming for the tests: testConfig.log4cpp.properties -> testPropertyConfig.log4cpp.properties testConfig.log4cpp.dailyroll.properties -> testDailyRollingFileAppender.log4cpp.properties testConfig.log4cpp.dailyroll.nt.properties -> testDailyRollingFileAppender.log4cpp.nt.properties log4cpp.property -> testPropConfig.log4cpp.properties log4cpp.nt.property -> testPropConfig.log4cpp.nt.properties testConfig.cpp -> testSimpleConfig.cpp log4cpp.init -> testSimpleConfig.log4cpp.init
Utilize macros LOG4CPP_PACKAGE_NAME, LOG4CPP_PACKAGE_VERSION for tests and examples
Update and fix THANKS, leave ascii content
Sync lib versions in CMakeLists.txt and configure.in, set 1.1.6
index.html, ChangeLog
Use va_copy for C+11 and later; use __va_copy for GCC pre-C++11; fallback to simple copy
clang-format setting 'SpacesInAngles: Never' breaks compilation on older c++ compilers. Keep setting for the codebase, but turn off formatting for few vulnerable lines only
.gitignore
index.html
Add formatted and streaming log4cpp macros with compile-time stripping
Keep project version-related macros for hardcoded config header files in single file <log4cpp/config-project-version.h>
Add path to the shared library into PATH for the test on windows so CTest can run it
Move all MSVC, BCB, OpenVMS project catalogs into separate directory 'projects'. No changes are applied to the project files themselves.
Prevent MS VS from mixing old project files with CMake builds
index.html Brief: Native project files are archived, CTest usage is added.
index.html wording ChangeLog
fix cmake examples build
README.md for githib
index.html
Remove references to directories msvc6 bcb5 openvms from autotools configs
-----------------------------------------------------------------------
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-02-27 19:07:30
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 5ce81a79fe9368e984165318d9ddb1f383e235dc (commit)
from f79a7d774269876264ef489cddbc551016d218eb (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 5ce81a79fe9368e984165318d9ddb1f383e235dc
Author: Alexander Perepelkin <san...@us...>
Date: Fri Feb 27 20:07:05 2026 +0100
Remove references to directories msvc6 bcb5 openvms from autotools configs
diff --git a/Makefile.am b/Makefile.am
index 950af56..678f3e0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,10 +1,10 @@
if DOC
-SUBDIRS = msvc6 bcb5 config src include tests doc
+SUBDIRS = config src include tests doc
else
-SUBDIRS = msvc6 bcb5 config src include tests
+SUBDIRS = config src include tests
endif
-DIST_SUBDIRS = msvc6 bcb5 openvms config src include doc tests
+DIST_SUBDIRS = config src include doc tests
bin_SCRIPTS = log4cpp-config
diff --git a/configure.in b/configure.in
index be686eb..f5e28ea 100644
--- a/configure.in
+++ b/configure.in
@@ -153,24 +153,6 @@ include/Makefile
include/log4cpp/Makefile
include/log4cpp/threading/Makefile
tests/Makefile
-msvc6/Makefile
-msvc6/log4cpp/Makefile
-msvc6/log4cppDLL/Makefile
-msvc6/testCategory/Makefile
-msvc6/testDLL/Makefile
-msvc6/testMain/Makefile
-msvc6/testNDC/Makefile
-msvc6/testNTEventLog/Makefile
-msvc6/testPattern/Makefile
-bcb5/Makefile
-bcb5/log4cpp/Makefile
-bcb5/testCategory/Makefile
-bcb5/testConfig/Makefile
-bcb5/testFixedContextCategory/Makefile
-bcb5/testmain/Makefile
-bcb5/testNDC/Makefile
-bcb5/testPattern/Makefile
-openvms/Makefile
])
AC_OUTPUT
-----------------------------------------------------------------------
Summary of changes:
Makefile.am | 6 +++---
configure.in | 18 ------------------
2 files changed, 3 insertions(+), 21 deletions(-)
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-02-27 18:49:26
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via f79a7d774269876264ef489cddbc551016d218eb (commit)
via 01f1d3a1696a6f1270792810ac8cc18787581dbf (commit)
via 7ff8d5ca129fac2c8de60d56219fc4aa9e8c0aa5 (commit)
via 349b0d9938bb4ea752b797a306ac9160a9565e32 (commit)
from f20e9272b67b49db7fc8563c401de7f060412c92 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit f79a7d774269876264ef489cddbc551016d218eb
Author: Alexander Perepelkin <san...@us...>
Date: Fri Feb 27 19:48:22 2026 +0100
index.html
diff --git a/doc/html/index.html b/doc/html/index.html
index 3493f5b..d222de8 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2026-02-15</span> |</div>
+2026-02-27</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -676,13 +676,16 @@ WARNING: releases from the development branch are a 'work in progress' and may f
<small>
<dl>
-<dt>1.1.6rc1 - master branch (15 February 2026)</dt>
+<dt>1.1.6rc2 - master branch (27 February 2026)</dt>
<dd>CMake support is enhanced. Building examples is enabled via the CMake's <code>LOG4CPP_BUILD_EXAMPLES</code> option.
CMake usage examples are provided for both scenarios: importing a CMake-installed log4cpp library and using
log4cpp as a CMake subproject.</dd>
<dd>Emulate autotools behaviour when building via CMake and generate <code>include/log4cpp/config.h</code> from Autotools-style
<code>config.h.in</code></dd>
<dd>Add test build support using CTest</dd>
+<dd>Add formatted and streaming log4cpp macros with compile-time stripping</dd>
+<dd>vsnprintf: Use va_copy for C+11 and later; use __va_copy for GCC pre-C++11; fallback to simple copy</dd>
+<dd>Native project files are archived to prevent MS VS from mixing old project files with CMake builds</dd>
</dl>
<dl>
http://sourceforge.net/p/log4cpp/codegit/ci/
commit f79a7d774269876264ef489cddbc551016d218eb
Author: Alexander Perepelkin <san...@us...>
Date: Fri Feb 27 19:48:22 2026 +0100
index.html
diff --git a/doc/html/index.html b/doc/html/index.html
index 3493f5b..d222de8 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2026-02-15</span> |</div>
+2026-02-27</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -676,13 +676,16 @@ WARNING: releases from the development branch are a 'work in progress' and may f
<small>
<dl>
-<dt>1.1.6rc1 - master branch (15 February 2026)</dt>
+<dt>1.1.6rc2 - master branch (27 February 2026)</dt>
<dd>CMake support is enhanced. Building examples is enabled via the CMake's <code>LOG4CPP_BUILD_EXAMPLES</code> option.
CMake usage examples are provided for both scenarios: importing a CMake-installed log4cpp library and using
log4cpp as a CMake subproject.</dd>
<dd>Emulate autotools behaviour when building via CMake and generate <code>include/log4cpp/config.h</code> from Autotools-style
<code>config.h.in</code></dd>
<dd>Add test build support using CTest</dd>
+<dd>Add formatted and streaming log4cpp macros with compile-time stripping</dd>
+<dd>vsnprintf: Use va_copy for C+11 and later; use __va_copy for GCC pre-C++11; fallback to simple copy</dd>
+<dd>Native project files are archived to prevent MS VS from mixing old project files with CMake builds</dd>
</dl>
<dl>
http://sourceforge.net/p/log4cpp/codegit/ci/
commit f79a7d774269876264ef489cddbc551016d218eb
Author: Alexander Perepelkin <san...@us...>
Date: Fri Feb 27 19:48:22 2026 +0100
index.html
diff --git a/doc/html/index.html b/doc/html/index.html
index 3493f5b..d222de8 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2026-02-15</span> |</div>
+2026-02-27</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -676,13 +676,16 @@ WARNING: releases from the development branch are a 'work in progress' and may f
<small>
<dl>
-<dt>1.1.6rc1 - master branch (15 February 2026)</dt>
+<dt>1.1.6rc2 - master branch (27 February 2026)</dt>
<dd>CMake support is enhanced. Building examples is enabled via the CMake's <code>LOG4CPP_BUILD_EXAMPLES</code> option.
CMake usage examples are provided for both scenarios: importing a CMake-installed log4cpp library and using
log4cpp as a CMake subproject.</dd>
<dd>Emulate autotools behaviour when building via CMake and generate <code>include/log4cpp/config.h</code> from Autotools-style
<code>config.h.in</code></dd>
<dd>Add test build support using CTest</dd>
+<dd>Add formatted and streaming log4cpp macros with compile-time stripping</dd>
+<dd>vsnprintf: Use va_copy for C+11 and later; use __va_copy for GCC pre-C++11; fallback to simple copy</dd>
+<dd>Native project files are archived to prevent MS VS from mixing old project files with CMake builds</dd>
</dl>
<dl>
http://sourceforge.net/p/log4cpp/codegit/ci/
commit f79a7d774269876264ef489cddbc551016d218eb
Author: Alexander Perepelkin <san...@us...>
Date: Fri Feb 27 19:48:22 2026 +0100
index.html
diff --git a/doc/html/index.html b/doc/html/index.html
index 3493f5b..d222de8 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2026-02-15</span> |</div>
+2026-02-27</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -676,13 +676,16 @@ WARNING: releases from the development branch are a 'work in progress' and may f
<small>
<dl>
-<dt>1.1.6rc1 - master branch (15 February 2026)</dt>
+<dt>1.1.6rc2 - master branch (27 February 2026)</dt>
<dd>CMake support is enhanced. Building examples is enabled via the CMake's <code>LOG4CPP_BUILD_EXAMPLES</code> option.
CMake usage examples are provided for both scenarios: importing a CMake-installed log4cpp library and using
log4cpp as a CMake subproject.</dd>
<dd>Emulate autotools behaviour when building via CMake and generate <code>include/log4cpp/config.h</code> from Autotools-style
<code>config.h.in</code></dd>
<dd>Add test build support using CTest</dd>
+<dd>Add formatted and streaming log4cpp macros with compile-time stripping</dd>
+<dd>vsnprintf: Use va_copy for C+11 and later; use __va_copy for GCC pre-C++11; fallback to simple copy</dd>
+<dd>Native project files are archived to prevent MS VS from mixing old project files with CMake builds</dd>
</dl>
<dl>
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 11 +++++++
README | 2 --
README.md | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++
doc/html/index.html | 12 ++++---
tests/CMakeLists.txt | 2 +-
5 files changed, 107 insertions(+), 8 deletions(-)
delete mode 100644 README
create mode 100644 README.md
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-02-24 14:39:16
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via f20e9272b67b49db7fc8563c401de7f060412c92 (commit)
via 16d6a0d527472ad47d370fb21e9ae927a0b5c5d8 (commit)
via 85fec02a6a19380be53ce1a1052c3662ff08087b (commit)
from ce4e8110f60885ec3a37a24813fe43d1c8851e07 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit f20e9272b67b49db7fc8563c401de7f060412c92
Author: Alexander Perepelkin <san...@us...>
Date: Tue Feb 24 15:28:43 2026 +0100
index.html
Brief: Native project files are archived, CTest usage is added.
diff --git a/doc/html/index.html b/doc/html/index.html
index 3cec4f4..2caa81a 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -27,8 +27,8 @@ Page on Sourceforge</a>
<ul>
<li><a title="Linux/*nix" href="#buildlinux">Linux/*nix, Autoconf</a> </li>
<li><a title="Linux/*nix" href="#buildcmake">Linux/*nix, CMake</a> </li>
- <li><a title="Windows, prj files" href="#buildwindowsprj">Windows, prj files</a> </li>
<li><a title="Windows, CMake" href="#buildwindowscmake">Windows, CMake</a> </li>
+ <li><a title="Windows, prj files" href="#buildwindowsprj">Windows, prj files</a> </li>
</ul>
<li><a title="License" href="#license">License</a>
</li>
@@ -92,7 +92,7 @@ the source tar-ball is as simple as
<div class="chapter">
<h2><a id="building">Building Log4cpp</a></h2>
-<h3><a id="buildlinux">Autoconf</a></h3>
+<h3><a id="buildlinux">Linux/*nix, Autoconf</a></h3>
<p>The project uses <a href="https://www.gnu.org/software/automake/">GNU Autotools</a> as primary build system.
<a href="#buildcmake">CMake</a> is secondary option.</p>
<p>If file <code>./configure</code> is absent in project directory (as when the code is checked out from repository), run the following:</p>
@@ -166,7 +166,69 @@ to draw its graphs.</dd>
</dl>
<p></p>
-<h3>Build notes for specific platforms</h3>
+<a href="#begin">^</a>
+<p></p>
+
+ <h3><a id="buildcmake">Linux/*nix, CMake</a></h3>
+ <p>Browse into the source code catalog (<code>log4cpp</code>) and run the following for <b>Release build</b>:</p>
+ <pre class="code">
+cmake -S . -B build_release -DCMAKE_BUILD_TYPE=Release<br>
+cmake --build build_release</pre>
+ This will create <code>./build_release</code>, compile and build libraries into it.
+ <p>Optionally, run tests (expected result is 100% tests passed):</p>
+ <pre class="code">
+cd build_release/tests<br>
+ctest</pre>
+
+ <p><b>Debug build</b> is analogous:</p>
+ <pre class="code">
+cmake -S . -B build_debug -DCMAKE_BUILD_TYPE=Debug<br>
+cmake --build build_debug</pre>
+ <p>Run tests for debug build:</p>
+ <pre class="code">
+cd build_debug/tests<br>
+ctest</pre>
+
+ <p></p>
+ <a href="#begin">^</a>
+ <p></p>
+
+ <h3><a id="buildwindowscmake">Windows, CMake</a></h3>
+ <h4>MS Visual Studio 2022</h4>
+ <blockquote>
+ <p><b>MS Visual Studio 2022</b> can open <code>log4cpp</code> directly as a CMake project.
+ <ul>
+ <li>Use <code>File → Open → CMake...</code> menu items to choose <code>log4cpp/CMakeLists.txt</code> file and start CMake generation.</li>
+ <li>After CMake generation is finished, choose <code>Build → Build All</code> to build <code>log4cpp</code> libs.</li>
+ <li>Optionally, run set of tests from <code>Test → Run CTests</code> </li>
+ </ul>
+ <br><small>Note: Native project files intended for older MSVC versions (<code>msvc10, msvc7, msvc6</code>)
+ are archived since log4cpp 1.1.6 into <code>projects</code> directory.</small>
+ </p>
+ </blockquote>
+ <h4>Embarcadero RAD Studio 12</h4>
+ <blockquote>
+ <p><b>Embarcadero RAD Studio 12</b> can build <code>log4cpp</code> project using its bundled version of CMake, provided via the RAD Package Manager.<br>
+ Make sure that Embarcadero's CMake (and not another installation) is used for command line.
+ Ninja generator will be used as build system, you can get <code>ninja-win.zip</code> at
+ <a href="https://ninja-build.org/">Ninja site</a> and extract the executable into catalog included into PATH environment variable.<br>
+ Open <b>RAD Studio Command Prompt</b> and run commands to build <code>log4cpp</code> libs:</p>
+ <p>Release:</p>
+ <pre class="code">
+cmake.exe -G Ninja -S . -B build_release -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_CROSSCOMPILING=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_ASM_COMPILER=bcc64x -DCMAKE_C_COMPILER=bcc64x -DCMAKE_CXX_COMPILER=bcc64x<br>
+cmake.exe --build build_release --config Release -v </pre>
+ <p>Debug:</p>
+ <pre class="code">
+cmake.exe -G Ninja -S . -B build_debug -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_CROSSCOMPILING=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ASM_COMPILER=bcc64x -DCMAKE_C_COMPILER=bcc64x -DCMAKE_CXX_COMPILER=bcc64x<br>
+cmake.exe --build build_debug --config Debug -v </pre>
+ </blockquote>
+ <p><i>Works since log4cpp 1.1.5. </i></p>
+
+ <p></p>
+ <a href="#begin">^</a>
+ <p></p>
+
+ <h3>Build notes for specific platforms</h3>
<dl>
<dt>*nix - g++ compiler</dt>
<dd>Log4cpp should build without modification on any decent
@@ -185,15 +247,17 @@ Also static libraries appear not to work. In short do:
</dl>
<dl>
<dt><a id="buildwindowsprj">Win32 - VS2010</a></dt>
-<dd>Use the workspace and project files in subdirectory msvc10.
-(You may need to adjust include/log4cpp/config-win32.h and the project
-files to your particular needs)</dd>
+<dd>Use the workspace and project files in subdirectory <code>msvc10</code>.
+You may need to adjust <code>include/log4cpp/config-win32.h</code> and the project
+files to your particular needs. Since log4cpp 1.1.6, directory with project
+files is kept as archive in directory <code>projects</code>. Extract it into project's root to use.</dd>
</dl>
<dl>
<dt>Win32 - MSVC++ 6</dt>
-<dd>Use the workspace and project files in subdirectory msvc6.
-You may need to adjust include/log4cpp/config-win32.h and the project
-files to your particular needs.</dd>
+<dd>Use the workspace and project files in subdirectory <code>msvc6</code>.
+You may need to adjust <code>include/log4cpp/config-win32.h</code> and the project
+files to your particular needs. Since log4cpp 1.1.6, directory with project
+files is kept as archive in directory <code>projects</code>. Extract it into project's root to use.</dd>
</dl>
<dl>
@@ -205,11 +269,12 @@ code.</dd>
</dl>
<dl>
<dt>Win32 - Borland C++ Builder 5</dt>
-<dd>Use the project and make files in subdirectory bcb5.</dd>
+<dd>Use the project and make files in subdirectory <code>bcb5</code>. Since log4cpp 1.1.6, directory with project
+files is kept as archive in directory <code>projects</code>. Extract it into project's root to use.</dd>
</dl>
<dl>
<dt>Win32 - Cygwin</dt>
-<dd>Use './configure; make; make install'.<br>
+<dd>Use <code>./configure; make; make install</code><br>
Be warned that there have been very few success or failure reports for
this platform,
so either it works very smoothly or noone actively uses log4cpp with
@@ -219,7 +284,7 @@ Cygwin :-)
<dl>
<dt>OpenVMS</dt>
<dt></dt>
-<dd>Edit include/log4cpp/config-openvms.h if you need
+<dd>Edit <code>include/log4cpp/config-openvms.h</code> if you need
different settings.<br>
This has been tested on OpenVMS Alpha v7.3 and Compaq C++ V6.3-020
only.
@@ -249,47 +314,10 @@ A1$DKB0:[USER.TONY.PROJECT.LOG4CPP.REPOSITORY].<br>
</dl>
</dl>
-<h3><a id="buildcmake">CMake</a></h3>
- <p>Browse into the source code catalog (<code>log4cpp</code>) and run the following for Release build:</p>
- <pre class="code">
-cmake -S . -B build_release -DCMAKE_BUILD_TYPE=Release<br>
-cmake --build build_release
- </pre>
- This will create <code>./build_release</code>, compile and build libraries into it.
- <p>Debug build is analogous:</p>
- <pre class="code">
-cmake -S . -B build_debug -DCMAKE_BUILD_TYPE=Debug<br>
-cmake --build build_debug
- </pre>
- <h3><a id="buildwindowscmake">Windows, CMake</a></h3>
- <h4>MS Visual Studio 2022</h4>
- <blockquote>
- <p><b>MS Visual Studio 2022</b> can open <code>log4cpp</code> directly as a CMake project.
- Use <code>File → Open → CMake...</code> menu items to choose <code>log4cpp/CMakeLists.txt</code> file and start CMake generation.
- After generation is finished, choose <code>Build → Build All</code> to build <code>log4cpp</code> libs.
- <br>Note: Make sure not to use project files intended for older MSVC versions (<code>msvc10, msvc7, msvc6</code>).
- If such files are used, you may encounter build error like: (<code>Platform Toolset = 'v100') cannot be found</code>.
- </p>
- </blockquote>
- <h4>Embarcadero RAD Studio 12</h4>
- <blockquote>
- <p><b>Embarcadero RAD Studio 12</b> can build <code>log4cpp</code> project using its bundled version of CMake, provided via the RAD Package Manager.<br>
- Make sure that Embarcadero's CMake (and not another installation) is used for command line.
- Ninja generator will be used as build system, you can get <code>ninja-win.zip</code> at
- <a href="https://ninja-build.org/">Ninja site</a> and extract the executable into catalog included into PATH environment variable.<br>
- Open <b>RAD Studio Command Prompt</b> and run commands to build <code>log4cpp</code> libs:</p>
- <p>Release:</p>
- <pre class="code">
-cmake.exe -G Ninja -S . -B build_release -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_CROSSCOMPILING=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_ASM_COMPILER=bcc64x -DCMAKE_C_COMPILER=bcc64x -DCMAKE_CXX_COMPILER=bcc64x<br>
-cmake.exe --build build_release --config Release -v </pre>
- <p>Debug:</p>
- <pre class="code">
-cmake.exe -G Ninja -S . -B build_debug -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_CROSSCOMPILING=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ASM_COMPILER=bcc64x -DCMAKE_C_COMPILER=bcc64x -DCMAKE_CXX_COMPILER=bcc64x<br>
-cmake.exe --build build_debug --config Debug -v </pre>
- </blockquote>
- <p><i>Works since log4cpp 1.1.5. </i></p>
+ <p></p>
+ <a href="#begin">^</a>
+ <p></p>
-<a href="#begin">^</a>
</div>
<div class="chapter">
http://sourceforge.net/p/log4cpp/codegit/ci/
commit f20e9272b67b49db7fc8563c401de7f060412c92
Author: Alexander Perepelkin <san...@us...>
Date: Tue Feb 24 15:28:43 2026 +0100
index.html
Brief: Native project files are archived, CTest usage is added.
diff --git a/doc/html/index.html b/doc/html/index.html
index 3cec4f4..2caa81a 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -27,8 +27,8 @@ Page on Sourceforge</a>
<ul>
<li><a title="Linux/*nix" href="#buildlinux">Linux/*nix, Autoconf</a> </li>
<li><a title="Linux/*nix" href="#buildcmake">Linux/*nix, CMake</a> </li>
- <li><a title="Windows, prj files" href="#buildwindowsprj">Windows, prj files</a> </li>
<li><a title="Windows, CMake" href="#buildwindowscmake">Windows, CMake</a> </li>
+ <li><a title="Windows, prj files" href="#buildwindowsprj">Windows, prj files</a> </li>
</ul>
<li><a title="License" href="#license">License</a>
</li>
@@ -92,7 +92,7 @@ the source tar-ball is as simple as
<div class="chapter">
<h2><a id="building">Building Log4cpp</a></h2>
-<h3><a id="buildlinux">Autoconf</a></h3>
+<h3><a id="buildlinux">Linux/*nix, Autoconf</a></h3>
<p>The project uses <a href="https://www.gnu.org/software/automake/">GNU Autotools</a> as primary build system.
<a href="#buildcmake">CMake</a> is secondary option.</p>
<p>If file <code>./configure</code> is absent in project directory (as when the code is checked out from repository), run the following:</p>
@@ -166,7 +166,69 @@ to draw its graphs.</dd>
</dl>
<p></p>
-<h3>Build notes for specific platforms</h3>
+<a href="#begin">^</a>
+<p></p>
+
+ <h3><a id="buildcmake">Linux/*nix, CMake</a></h3>
+ <p>Browse into the source code catalog (<code>log4cpp</code>) and run the following for <b>Release build</b>:</p>
+ <pre class="code">
+cmake -S . -B build_release -DCMAKE_BUILD_TYPE=Release<br>
+cmake --build build_release</pre>
+ This will create <code>./build_release</code>, compile and build libraries into it.
+ <p>Optionally, run tests (expected result is 100% tests passed):</p>
+ <pre class="code">
+cd build_release/tests<br>
+ctest</pre>
+
+ <p><b>Debug build</b> is analogous:</p>
+ <pre class="code">
+cmake -S . -B build_debug -DCMAKE_BUILD_TYPE=Debug<br>
+cmake --build build_debug</pre>
+ <p>Run tests for debug build:</p>
+ <pre class="code">
+cd build_debug/tests<br>
+ctest</pre>
+
+ <p></p>
+ <a href="#begin">^</a>
+ <p></p>
+
+ <h3><a id="buildwindowscmake">Windows, CMake</a></h3>
+ <h4>MS Visual Studio 2022</h4>
+ <blockquote>
+ <p><b>MS Visual Studio 2022</b> can open <code>log4cpp</code> directly as a CMake project.
+ <ul>
+ <li>Use <code>File → Open → CMake...</code> menu items to choose <code>log4cpp/CMakeLists.txt</code> file and start CMake generation.</li>
+ <li>After CMake generation is finished, choose <code>Build → Build All</code> to build <code>log4cpp</code> libs.</li>
+ <li>Optionally, run set of tests from <code>Test → Run CTests</code> </li>
+ </ul>
+ <br><small>Note: Native project files intended for older MSVC versions (<code>msvc10, msvc7, msvc6</code>)
+ are archived since log4cpp 1.1.6 into <code>projects</code> directory.</small>
+ </p>
+ </blockquote>
+ <h4>Embarcadero RAD Studio 12</h4>
+ <blockquote>
+ <p><b>Embarcadero RAD Studio 12</b> can build <code>log4cpp</code> project using its bundled version of CMake, provided via the RAD Package Manager.<br>
+ Make sure that Embarcadero's CMake (and not another installation) is used for command line.
+ Ninja generator will be used as build system, you can get <code>ninja-win.zip</code> at
+ <a href="https://ninja-build.org/">Ninja site</a> and extract the executable into catalog included into PATH environment variable.<br>
+ Open <b>RAD Studio Command Prompt</b> and run commands to build <code>log4cpp</code> libs:</p>
+ <p>Release:</p>
+ <pre class="code">
+cmake.exe -G Ninja -S . -B build_release -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_CROSSCOMPILING=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_ASM_COMPILER=bcc64x -DCMAKE_C_COMPILER=bcc64x -DCMAKE_CXX_COMPILER=bcc64x<br>
+cmake.exe --build build_release --config Release -v </pre>
+ <p>Debug:</p>
+ <pre class="code">
+cmake.exe -G Ninja -S . -B build_debug -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_CROSSCOMPILING=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ASM_COMPILER=bcc64x -DCMAKE_C_COMPILER=bcc64x -DCMAKE_CXX_COMPILER=bcc64x<br>
+cmake.exe --build build_debug --config Debug -v </pre>
+ </blockquote>
+ <p><i>Works since log4cpp 1.1.5. </i></p>
+
+ <p></p>
+ <a href="#begin">^</a>
+ <p></p>
+
+ <h3>Build notes for specific platforms</h3>
<dl>
<dt>*nix - g++ compiler</dt>
<dd>Log4cpp should build without modification on any decent
@@ -185,15 +247,17 @@ Also static libraries appear not to work. In short do:
</dl>
<dl>
<dt><a id="buildwindowsprj">Win32 - VS2010</a></dt>
-<dd>Use the workspace and project files in subdirectory msvc10.
-(You may need to adjust include/log4cpp/config-win32.h and the project
-files to your particular needs)</dd>
+<dd>Use the workspace and project files in subdirectory <code>msvc10</code>.
+You may need to adjust <code>include/log4cpp/config-win32.h</code> and the project
+files to your particular needs. Since log4cpp 1.1.6, directory with project
+files is kept as archive in directory <code>projects</code>. Extract it into project's root to use.</dd>
</dl>
<dl>
<dt>Win32 - MSVC++ 6</dt>
-<dd>Use the workspace and project files in subdirectory msvc6.
-You may need to adjust include/log4cpp/config-win32.h and the project
-files to your particular needs.</dd>
+<dd>Use the workspace and project files in subdirectory <code>msvc6</code>.
+You may need to adjust <code>include/log4cpp/config-win32.h</code> and the project
+files to your particular needs. Since log4cpp 1.1.6, directory with project
+files is kept as archive in directory <code>projects</code>. Extract it into project's root to use.</dd>
</dl>
<dl>
@@ -205,11 +269,12 @@ code.</dd>
</dl>
<dl>
<dt>Win32 - Borland C++ Builder 5</dt>
-<dd>Use the project and make files in subdirectory bcb5.</dd>
+<dd>Use the project and make files in subdirectory <code>bcb5</code>. Since log4cpp 1.1.6, directory with project
+files is kept as archive in directory <code>projects</code>. Extract it into project's root to use.</dd>
</dl>
<dl>
<dt>Win32 - Cygwin</dt>
-<dd>Use './configure; make; make install'.<br>
+<dd>Use <code>./configure; make; make install</code><br>
Be warned that there have been very few success or failure reports for
this platform,
so either it works very smoothly or noone actively uses log4cpp with
@@ -219,7 +284,7 @@ Cygwin :-)
<dl>
<dt>OpenVMS</dt>
<dt></dt>
-<dd>Edit include/log4cpp/config-openvms.h if you need
+<dd>Edit <code>include/log4cpp/config-openvms.h</code> if you need
different settings.<br>
This has been tested on OpenVMS Alpha v7.3 and Compaq C++ V6.3-020
only.
@@ -249,47 +314,10 @@ A1$DKB0:[USER.TONY.PROJECT.LOG4CPP.REPOSITORY].<br>
</dl>
</dl>
-<h3><a id="buildcmake">CMake</a></h3>
- <p>Browse into the source code catalog (<code>log4cpp</code>) and run the following for Release build:</p>
- <pre class="code">
-cmake -S . -B build_release -DCMAKE_BUILD_TYPE=Release<br>
-cmake --build build_release
- </pre>
- This will create <code>./build_release</code>, compile and build libraries into it.
- <p>Debug build is analogous:</p>
- <pre class="code">
-cmake -S . -B build_debug -DCMAKE_BUILD_TYPE=Debug<br>
-cmake --build build_debug
- </pre>
- <h3><a id="buildwindowscmake">Windows, CMake</a></h3>
- <h4>MS Visual Studio 2022</h4>
- <blockquote>
- <p><b>MS Visual Studio 2022</b> can open <code>log4cpp</code> directly as a CMake project.
- Use <code>File → Open → CMake...</code> menu items to choose <code>log4cpp/CMakeLists.txt</code> file and start CMake generation.
- After generation is finished, choose <code>Build → Build All</code> to build <code>log4cpp</code> libs.
- <br>Note: Make sure not to use project files intended for older MSVC versions (<code>msvc10, msvc7, msvc6</code>).
- If such files are used, you may encounter build error like: (<code>Platform Toolset = 'v100') cannot be found</code>.
- </p>
- </blockquote>
- <h4>Embarcadero RAD Studio 12</h4>
- <blockquote>
- <p><b>Embarcadero RAD Studio 12</b> can build <code>log4cpp</code> project using its bundled version of CMake, provided via the RAD Package Manager.<br>
- Make sure that Embarcadero's CMake (and not another installation) is used for command line.
- Ninja generator will be used as build system, you can get <code>ninja-win.zip</code> at
- <a href="https://ninja-build.org/">Ninja site</a> and extract the executable into catalog included into PATH environment variable.<br>
- Open <b>RAD Studio Command Prompt</b> and run commands to build <code>log4cpp</code> libs:</p>
- <p>Release:</p>
- <pre class="code">
-cmake.exe -G Ninja -S . -B build_release -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_CROSSCOMPILING=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_ASM_COMPILER=bcc64x -DCMAKE_C_COMPILER=bcc64x -DCMAKE_CXX_COMPILER=bcc64x<br>
-cmake.exe --build build_release --config Release -v </pre>
- <p>Debug:</p>
- <pre class="code">
-cmake.exe -G Ninja -S . -B build_debug -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_CROSSCOMPILING=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ASM_COMPILER=bcc64x -DCMAKE_C_COMPILER=bcc64x -DCMAKE_CXX_COMPILER=bcc64x<br>
-cmake.exe --build build_debug --config Debug -v </pre>
- </blockquote>
- <p><i>Works since log4cpp 1.1.5. </i></p>
+ <p></p>
+ <a href="#begin">^</a>
+ <p></p>
-<a href="#begin">^</a>
</div>
<div class="chapter">
http://sourceforge.net/p/log4cpp/codegit/ci/
commit f20e9272b67b49db7fc8563c401de7f060412c92
Author: Alexander Perepelkin <san...@us...>
Date: Tue Feb 24 15:28:43 2026 +0100
index.html
Brief: Native project files are archived, CTest usage is added.
diff --git a/doc/html/index.html b/doc/html/index.html
index 3cec4f4..2caa81a 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -27,8 +27,8 @@ Page on Sourceforge</a>
<ul>
<li><a title="Linux/*nix" href="#buildlinux">Linux/*nix, Autoconf</a> </li>
<li><a title="Linux/*nix" href="#buildcmake">Linux/*nix, CMake</a> </li>
- <li><a title="Windows, prj files" href="#buildwindowsprj">Windows, prj files</a> </li>
<li><a title="Windows, CMake" href="#buildwindowscmake">Windows, CMake</a> </li>
+ <li><a title="Windows, prj files" href="#buildwindowsprj">Windows, prj files</a> </li>
</ul>
<li><a title="License" href="#license">License</a>
</li>
@@ -92,7 +92,7 @@ the source tar-ball is as simple as
<div class="chapter">
<h2><a id="building">Building Log4cpp</a></h2>
-<h3><a id="buildlinux">Autoconf</a></h3>
+<h3><a id="buildlinux">Linux/*nix, Autoconf</a></h3>
<p>The project uses <a href="https://www.gnu.org/software/automake/">GNU Autotools</a> as primary build system.
<a href="#buildcmake">CMake</a> is secondary option.</p>
<p>If file <code>./configure</code> is absent in project directory (as when the code is checked out from repository), run the following:</p>
@@ -166,7 +166,69 @@ to draw its graphs.</dd>
</dl>
<p></p>
-<h3>Build notes for specific platforms</h3>
+<a href="#begin">^</a>
+<p></p>
+
+ <h3><a id="buildcmake">Linux/*nix, CMake</a></h3>
+ <p>Browse into the source code catalog (<code>log4cpp</code>) and run the following for <b>Release build</b>:</p>
+ <pre class="code">
+cmake -S . -B build_release -DCMAKE_BUILD_TYPE=Release<br>
+cmake --build build_release</pre>
+ This will create <code>./build_release</code>, compile and build libraries into it.
+ <p>Optionally, run tests (expected result is 100% tests passed):</p>
+ <pre class="code">
+cd build_release/tests<br>
+ctest</pre>
+
+ <p><b>Debug build</b> is analogous:</p>
+ <pre class="code">
+cmake -S . -B build_debug -DCMAKE_BUILD_TYPE=Debug<br>
+cmake --build build_debug</pre>
+ <p>Run tests for debug build:</p>
+ <pre class="code">
+cd build_debug/tests<br>
+ctest</pre>
+
+ <p></p>
+ <a href="#begin">^</a>
+ <p></p>
+
+ <h3><a id="buildwindowscmake">Windows, CMake</a></h3>
+ <h4>MS Visual Studio 2022</h4>
+ <blockquote>
+ <p><b>MS Visual Studio 2022</b> can open <code>log4cpp</code> directly as a CMake project.
+ <ul>
+ <li>Use <code>File → Open → CMake...</code> menu items to choose <code>log4cpp/CMakeLists.txt</code> file and start CMake generation.</li>
+ <li>After CMake generation is finished, choose <code>Build → Build All</code> to build <code>log4cpp</code> libs.</li>
+ <li>Optionally, run set of tests from <code>Test → Run CTests</code> </li>
+ </ul>
+ <br><small>Note: Native project files intended for older MSVC versions (<code>msvc10, msvc7, msvc6</code>)
+ are archived since log4cpp 1.1.6 into <code>projects</code> directory.</small>
+ </p>
+ </blockquote>
+ <h4>Embarcadero RAD Studio 12</h4>
+ <blockquote>
+ <p><b>Embarcadero RAD Studio 12</b> can build <code>log4cpp</code> project using its bundled version of CMake, provided via the RAD Package Manager.<br>
+ Make sure that Embarcadero's CMake (and not another installation) is used for command line.
+ Ninja generator will be used as build system, you can get <code>ninja-win.zip</code> at
+ <a href="https://ninja-build.org/">Ninja site</a> and extract the executable into catalog included into PATH environment variable.<br>
+ Open <b>RAD Studio Command Prompt</b> and run commands to build <code>log4cpp</code> libs:</p>
... 388 lines suppressed ...
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-02-24 12:06:30
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via ce4e8110f60885ec3a37a24813fe43d1c8851e07 (commit)
from 0e36286665f3488c35cd03ac0904953446a22c3b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit ce4e8110f60885ec3a37a24813fe43d1c8851e07
Author: Alexander Perepelkin <san...@us...>
Date: Tue Feb 24 13:06:11 2026 +0100
Add path to the shared library into PATH for the test on windows so CTest can run it
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 6919ef2..0d814a8 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -73,6 +73,10 @@ foreach(test_source IN LISTS TEST_EXECUTABLE_SOURCES)
# Add test to CTest
add_test(NAME ${test_name} COMMAND ${test_name})
set_tests_properties(${test_name} PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+ # Add path to the shared library into PATH for the test on windows so CTest can run it
+ if(WIN32)
+ set_tests_properties(${test_name} PROPERTIES ENVIRONMENT "PATH=$<TARGET_FILE_DIR:${LOG4CPP_TEST_LIB}>;$ENV{PATH}")
+ endif()
endforeach()
# List of resource files to copy
-----------------------------------------------------------------------
Summary of changes:
tests/CMakeLists.txt | 4 ++++
1 file changed, 4 insertions(+)
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-02-21 21:08:07
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 0e36286665f3488c35cd03ac0904953446a22c3b (commit)
via e8f62f2746a7b0133c6681f4d378b6f6f80849fe (commit)
via 55c2289baca6dfbd0ed77e1b21c3c6ca1841b714 (commit)
via cf79f382dca07f4e2026306f32ce5f5502fa5889 (commit)
via a4740e02dca7f6edd62449354323a019c6c5a28f (commit)
via fb8d6dd0c74cbbfd6a2a1a38176e46ea709cbfef (commit)
from 516e8ba2ec87c697d0afb2aea42d51b80095930f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 0e36286665f3488c35cd03ac0904953446a22c3b
Author: Alexander Perepelkin <san...@us...>
Date: Sat Feb 21 22:05:41 2026 +0100
Keep project version-related macros for hardcoded config header files in single file <log4cpp/config-project-version.h>
diff --git a/include/log4cpp/Portability.hh b/include/log4cpp/Portability.hh
index 7033270..1b97729 100644
--- a/include/log4cpp/Portability.hh
+++ b/include/log4cpp/Portability.hh
@@ -10,6 +10,8 @@
#ifndef _LOG4CPP_PORTABILITY_HH
#define _LOG4CPP_PORTABILITY_HH
+// <log4cpp/config.h> is auto-generated by autotools or CMake during build.
+// All other <log4cpp/config-*.h> are legacy manually edited copies and are kept for backward compatibility.
#if defined(_MSC_VER) || defined(__BORLANDC__)
#if defined(LOG4CPP_STLPORT_AND_BOOST_BUILD)
#include <log4cpp/config-win32-stlport-boost.h>
diff --git a/include/log4cpp/config-MinGW32.h b/include/log4cpp/config-MinGW32.h
index 42a5350..27520b5 100644
--- a/include/log4cpp/config-MinGW32.h
+++ b/include/log4cpp/config-MinGW32.h
@@ -9,6 +9,7 @@
#define _INCLUDE_LOG4CPP_CONFIG_MINGW32_H 1
/* manually edited from include/log4cpp/config.h */
+#include <log4cpp/config-project-version.h>
/* Define if you have the syslog function. */
/* #undef LOG4CPP_HAVE_SYSLOG */
@@ -58,16 +59,6 @@ typedef u_long in_addr_t;
/* Define if you have the `strcasecmp' function. */
/* #undef LOG4CPP_HAVE_STRCASECMP */
-/* Name of package */
-#ifndef LOG4CPP_PACKAGE
-#define LOG4CPP_PACKAGE "log4cpp"
-#endif
-
-/* Version number of package */
-#ifndef LOG4CPP_VERSION
-#define LOG4CPP_VERSION "1.0"
-#endif
-
/* define if the compiler implements namespaces */
#ifndef LOG4CPP_HAVE_NAMESPACES
#define LOG4CPP_HAVE_NAMESPACES 1
diff --git a/include/log4cpp/config-openvms.h b/include/log4cpp/config-openvms.h
index f0c17cf..d41d78d 100644
--- a/include/log4cpp/config-openvms.h
+++ b/include/log4cpp/config-openvms.h
@@ -11,6 +11,7 @@
/* include/log4cpp/config.h. Generated automatically at end of configure. */
/* include/config.h. Generated automatically by configure. */
/* include/config.h.in. Generated automatically from configure.in by autoheader. */
+#include <log4cpp/config-project-version.h>
/* Define if you have the <dlfcn.h> header file. */
#ifndef LOG4CPP_HAVE_DLFCN_H
@@ -60,15 +61,5 @@
#define LOG4CPP_HAVE_UNISTD_H 1
#endif
-/* Name of package */
-#ifndef LOG4CPP_PACKAGE
-#define LOG4CPP_PACKAGE "log4cpp"
-#endif
-
-/* Version number of package */
-#ifndef LOG4CPP_VERSION
-#define LOG4CPP_VERSION "1.0"
-#endif
-
/* _INCLUDE_LOG4CPP_CONFIG_OPENVMS_H */
#endif
diff --git a/include/log4cpp/config-project-version.h b/include/log4cpp/config-project-version.h
new file mode 100644
index 0000000..c7b0d13
--- /dev/null
+++ b/include/log4cpp/config-project-version.h
@@ -0,0 +1,45 @@
+//
+// Common part for all hardcoded config-*.h files.
+// config.h is autogenerated by either autotools or CMake.
+// config-*.h files are legacy files, kept for backward compatibility.
+//
+
+#ifndef LOG4CPP_CONFIG_PROJECT_COMMON_H
+#define LOG4CPP_CONFIG_PROJECT_COMMON_H
+
+/* Name of package */
+#ifndef LOG4CPP_PACKAGE
+#define LOG4CPP_PACKAGE "log4cpp"
+#endif
+
+/* Define to the full name of this package. */
+#ifndef LOG4CPP_PACKAGE_NAME
+#define LOG4CPP_PACKAGE_NAME "log4cpp"
+#endif
+
+/* Define to the full name and version of this package. */
+#ifndef LOG4CPP_PACKAGE_STRING
+#define LOG4CPP_PACKAGE_STRING "log4cpp 1.1.6"
+#endif
+
+/* Define to the one symbol short name of this package. */
+#ifndef LOG4CPP_PACKAGE_TARNAME
+#define LOG4CPP_PACKAGE_TARNAME "log4cpp"
+#endif
+
+/* Define to the home page for this package. */
+#ifndef LOG4CPP_PACKAGE_URL
+#define LOG4CPP_PACKAGE_URL "https://log4cpp.sourceforge.net"
+#endif
+
+/* Define to the version of this package. */
+#ifndef LOG4CPP_PACKAGE_VERSION
+#define LOG4CPP_PACKAGE_VERSION "1.1.6"
+#endif
+
+/* Version number of package */
+#ifndef LOG4CPP_VERSION
+#define LOG4CPP_VERSION "1.1.6"
+#endif
+
+#endif // LOG4CPP_CONFIG_PROJECT_COMMON_H
diff --git a/include/log4cpp/config-win32-stlport-boost.h b/include/log4cpp/config-win32-stlport-boost.h
index 8905b93..729ef5e 100644
--- a/include/log4cpp/config-win32-stlport-boost.h
+++ b/include/log4cpp/config-win32-stlport-boost.h
@@ -9,6 +9,7 @@
#define _INCLUDE_LOG4CPP_CONFIG_WIN32_H 1
/* manually edited from include/log4cpp/config.h */
+#include <log4cpp/config-project-version.h>
/* Define if you have the syslog function. */
/* #undef LOG4CPP_HAVE_SYSLOG */
@@ -60,16 +61,6 @@ typedef u_long in_addr_t;
/* Define if you have the `strcasecmp' function. */
/* #undef LOG4CPP_HAVE_STRCASECMP */
-/* Name of package */
-#ifndef LOG4CPP_PACKAGE
-#define LOG4CPP_PACKAGE "log4cpp"
-#endif
-
-/* Version number of package */
-#ifndef LOG4CPP_VERSION
-#define LOG4CPP_VERSION "1.0"
-#endif
-
/* define if the compiler implements namespaces */
#ifndef LOG4CPP_HAVE_NAMESPACES
#define LOG4CPP_HAVE_NAMESPACES 1
diff --git a/include/log4cpp/config-win32.h b/include/log4cpp/config-win32.h
index 6611824..5281ae4 100644
--- a/include/log4cpp/config-win32.h
+++ b/include/log4cpp/config-win32.h
@@ -9,6 +9,7 @@
#define _INCLUDE_LOG4CPP_CONFIG_WIN32_H 1
/* manually edited from include/log4cpp/config.h */
+#include <log4cpp/config-project-version.h>
/* Define if you have the syslog function. */
/* #undef LOG4CPP_HAVE_SYSLOG */
@@ -62,16 +63,6 @@ typedef u_long in_addr_t;
/* Define if you have the `strcasecmp' function. */
/* #undef LOG4CPP_HAVE_STRCASECMP */
-/* Name of package */
-#ifndef LOG4CPP_PACKAGE
-#define LOG4CPP_PACKAGE "log4cpp"
-#endif
-
-/* Version number of package */
-#ifndef LOG4CPP_VERSION
-#define LOG4CPP_VERSION "1.0"
-#endif
-
/* define if the compiler implements namespaces */
#ifndef LOG4CPP_HAVE_NAMESPACES
#define LOG4CPP_HAVE_NAMESPACES 1
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 0e36286665f3488c35cd03ac0904953446a22c3b
Author: Alexander Perepelkin <san...@us...>
Date: Sat Feb 21 22:05:41 2026 +0100
Keep project version-related macros for hardcoded config header files in single file <log4cpp/config-project-version.h>
diff --git a/include/log4cpp/Portability.hh b/include/log4cpp/Portability.hh
index 7033270..1b97729 100644
--- a/include/log4cpp/Portability.hh
+++ b/include/log4cpp/Portability.hh
@@ -10,6 +10,8 @@
#ifndef _LOG4CPP_PORTABILITY_HH
#define _LOG4CPP_PORTABILITY_HH
+// <log4cpp/config.h> is auto-generated by autotools or CMake during build.
+// All other <log4cpp/config-*.h> are legacy manually edited copies and are kept for backward compatibility.
#if defined(_MSC_VER) || defined(__BORLANDC__)
#if defined(LOG4CPP_STLPORT_AND_BOOST_BUILD)
#include <log4cpp/config-win32-stlport-boost.h>
diff --git a/include/log4cpp/config-MinGW32.h b/include/log4cpp/config-MinGW32.h
index 42a5350..27520b5 100644
--- a/include/log4cpp/config-MinGW32.h
+++ b/include/log4cpp/config-MinGW32.h
@@ -9,6 +9,7 @@
#define _INCLUDE_LOG4CPP_CONFIG_MINGW32_H 1
/* manually edited from include/log4cpp/config.h */
+#include <log4cpp/config-project-version.h>
/* Define if you have the syslog function. */
/* #undef LOG4CPP_HAVE_SYSLOG */
@@ -58,16 +59,6 @@ typedef u_long in_addr_t;
/* Define if you have the `strcasecmp' function. */
/* #undef LOG4CPP_HAVE_STRCASECMP */
-/* Name of package */
-#ifndef LOG4CPP_PACKAGE
-#define LOG4CPP_PACKAGE "log4cpp"
-#endif
-
-/* Version number of package */
-#ifndef LOG4CPP_VERSION
-#define LOG4CPP_VERSION "1.0"
-#endif
-
/* define if the compiler implements namespaces */
#ifndef LOG4CPP_HAVE_NAMESPACES
#define LOG4CPP_HAVE_NAMESPACES 1
diff --git a/include/log4cpp/config-openvms.h b/include/log4cpp/config-openvms.h
index f0c17cf..d41d78d 100644
--- a/include/log4cpp/config-openvms.h
+++ b/include/log4cpp/config-openvms.h
@@ -11,6 +11,7 @@
/* include/log4cpp/config.h. Generated automatically at end of configure. */
/* include/config.h. Generated automatically by configure. */
/* include/config.h.in. Generated automatically from configure.in by autoheader. */
+#include <log4cpp/config-project-version.h>
/* Define if you have the <dlfcn.h> header file. */
#ifndef LOG4CPP_HAVE_DLFCN_H
@@ -60,15 +61,5 @@
#define LOG4CPP_HAVE_UNISTD_H 1
#endif
-/* Name of package */
-#ifndef LOG4CPP_PACKAGE
-#define LOG4CPP_PACKAGE "log4cpp"
-#endif
-
-/* Version number of package */
-#ifndef LOG4CPP_VERSION
-#define LOG4CPP_VERSION "1.0"
-#endif
-
/* _INCLUDE_LOG4CPP_CONFIG_OPENVMS_H */
#endif
diff --git a/include/log4cpp/config-project-version.h b/include/log4cpp/config-project-version.h
new file mode 100644
index 0000000..c7b0d13
--- /dev/null
+++ b/include/log4cpp/config-project-version.h
@@ -0,0 +1,45 @@
+//
+// Common part for all hardcoded config-*.h files.
+// config.h is autogenerated by either autotools or CMake.
+// config-*.h files are legacy files, kept for backward compatibility.
+//
+
+#ifndef LOG4CPP_CONFIG_PROJECT_COMMON_H
+#define LOG4CPP_CONFIG_PROJECT_COMMON_H
+
+/* Name of package */
+#ifndef LOG4CPP_PACKAGE
+#define LOG4CPP_PACKAGE "log4cpp"
+#endif
+
+/* Define to the full name of this package. */
+#ifndef LOG4CPP_PACKAGE_NAME
+#define LOG4CPP_PACKAGE_NAME "log4cpp"
+#endif
+
+/* Define to the full name and version of this package. */
+#ifndef LOG4CPP_PACKAGE_STRING
+#define LOG4CPP_PACKAGE_STRING "log4cpp 1.1.6"
+#endif
+
+/* Define to the one symbol short name of this package. */
+#ifndef LOG4CPP_PACKAGE_TARNAME
+#define LOG4CPP_PACKAGE_TARNAME "log4cpp"
+#endif
+
+/* Define to the home page for this package. */
+#ifndef LOG4CPP_PACKAGE_URL
+#define LOG4CPP_PACKAGE_URL "https://log4cpp.sourceforge.net"
+#endif
+
+/* Define to the version of this package. */
+#ifndef LOG4CPP_PACKAGE_VERSION
+#define LOG4CPP_PACKAGE_VERSION "1.1.6"
+#endif
+
+/* Version number of package */
+#ifndef LOG4CPP_VERSION
+#define LOG4CPP_VERSION "1.1.6"
+#endif
+
+#endif // LOG4CPP_CONFIG_PROJECT_COMMON_H
diff --git a/include/log4cpp/config-win32-stlport-boost.h b/include/log4cpp/config-win32-stlport-boost.h
index 8905b93..729ef5e 100644
--- a/include/log4cpp/config-win32-stlport-boost.h
+++ b/include/log4cpp/config-win32-stlport-boost.h
@@ -9,6 +9,7 @@
#define _INCLUDE_LOG4CPP_CONFIG_WIN32_H 1
/* manually edited from include/log4cpp/config.h */
+#include <log4cpp/config-project-version.h>
/* Define if you have the syslog function. */
/* #undef LOG4CPP_HAVE_SYSLOG */
@@ -60,16 +61,6 @@ typedef u_long in_addr_t;
/* Define if you have the `strcasecmp' function. */
/* #undef LOG4CPP_HAVE_STRCASECMP */
-/* Name of package */
-#ifndef LOG4CPP_PACKAGE
-#define LOG4CPP_PACKAGE "log4cpp"
-#endif
-
-/* Version number of package */
-#ifndef LOG4CPP_VERSION
-#define LOG4CPP_VERSION "1.0"
-#endif
-
/* define if the compiler implements namespaces */
#ifndef LOG4CPP_HAVE_NAMESPACES
#define LOG4CPP_HAVE_NAMESPACES 1
diff --git a/include/log4cpp/config-win32.h b/include/log4cpp/config-win32.h
index 6611824..5281ae4 100644
--- a/include/log4cpp/config-win32.h
+++ b/include/log4cpp/config-win32.h
@@ -9,6 +9,7 @@
#define _INCLUDE_LOG4CPP_CONFIG_WIN32_H 1
/* manually edited from include/log4cpp/config.h */
+#include <log4cpp/config-project-version.h>
/* Define if you have the syslog function. */
/* #undef LOG4CPP_HAVE_SYSLOG */
@@ -62,16 +63,6 @@ typedef u_long in_addr_t;
/* Define if you have the `strcasecmp' function. */
/* #undef LOG4CPP_HAVE_STRCASECMP */
-/* Name of package */
-#ifndef LOG4CPP_PACKAGE
-#define LOG4CPP_PACKAGE "log4cpp"
-#endif
-
-/* Version number of package */
-#ifndef LOG4CPP_VERSION
-#define LOG4CPP_VERSION "1.0"
-#endif
-
/* define if the compiler implements namespaces */
#ifndef LOG4CPP_HAVE_NAMESPACES
#define LOG4CPP_HAVE_NAMESPACES 1
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 0e36286665f3488c35cd03ac0904953446a22c3b
Author: Alexander Perepelkin <san...@us...>
Date: Sat Feb 21 22:05:41 2026 +0100
Keep project version-related macros for hardcoded config header files in single file <log4cpp/config-project-version.h>
diff --git a/include/log4cpp/Portability.hh b/include/log4cpp/Portability.hh
index 7033270..1b97729 100644
--- a/include/log4cpp/Portability.hh
+++ b/include/log4cpp/Portability.hh
@@ -10,6 +10,8 @@
#ifndef _LOG4CPP_PORTABILITY_HH
#define _LOG4CPP_PORTABILITY_HH
+// <log4cpp/config.h> is auto-generated by autotools or CMake during build.
+// All other <log4cpp/config-*.h> are legacy manually edited copies and are kept for backward compatibility.
#if defined(_MSC_VER) || defined(__BORLANDC__)
#if defined(LOG4CPP_STLPORT_AND_BOOST_BUILD)
#include <log4cpp/config-win32-stlport-boost.h>
diff --git a/include/log4cpp/config-MinGW32.h b/include/log4cpp/config-MinGW32.h
index 42a5350..27520b5 100644
--- a/include/log4cpp/config-MinGW32.h
+++ b/include/log4cpp/config-MinGW32.h
@@ -9,6 +9,7 @@
#define _INCLUDE_LOG4CPP_CONFIG_MINGW32_H 1
/* manually edited from include/log4cpp/config.h */
+#include <log4cpp/config-project-version.h>
/* Define if you have the syslog function. */
/* #undef LOG4CPP_HAVE_SYSLOG */
@@ -58,16 +59,6 @@ typedef u_long in_addr_t;
/* Define if you have the `strcasecmp' function. */
/* #undef LOG4CPP_HAVE_STRCASECMP */
-/* Name of package */
-#ifndef LOG4CPP_PACKAGE
-#define LOG4CPP_PACKAGE "log4cpp"
-#endif
-
-/* Version number of package */
-#ifndef LOG4CPP_VERSION
-#define LOG4CPP_VERSION "1.0"
-#endif
-
/* define if the compiler implements namespaces */
#ifndef LOG4CPP_HAVE_NAMESPACES
#define LOG4CPP_HAVE_NAMESPACES 1
diff --git a/include/log4cpp/config-openvms.h b/include/log4cpp/config-openvms.h
index f0c17cf..d41d78d 100644
--- a/include/log4cpp/config-openvms.h
+++ b/include/log4cpp/config-openvms.h
@@ -11,6 +11,7 @@
/* include/log4cpp/config.h. Generated automatically at end of configure. */
/* include/config.h. Generated automatically by configure. */
/* include/config.h.in. Generated automatically from configure.in by autoheader. */
+#include <log4cpp/config-project-version.h>
/* Define if you have the <dlfcn.h> header file. */
#ifndef LOG4CPP_HAVE_DLFCN_H
@@ -60,15 +61,5 @@
#define LOG4CPP_HAVE_UNISTD_H 1
#endif
-/* Name of package */
-#ifndef LOG4CPP_PACKAGE
-#define LOG4CPP_PACKAGE "log4cpp"
-#endif
-
-/* Version number of package */
-#ifndef LOG4CPP_VERSION
-#define LOG4CPP_VERSION "1.0"
-#endif
-
/* _INCLUDE_LOG4CPP_CONFIG_OPENVMS_H */
#endif
diff --git a/include/log4cpp/config-project-version.h b/include/log4cpp/config-project-version.h
new file mode 100644
index 0000000..c7b0d13
--- /dev/null
+++ b/include/log4cpp/config-project-version.h
@@ -0,0 +1,45 @@
+//
+// Common part for all hardcoded config-*.h files.
+// config.h is autogenerated by either autotools or CMake.
+// config-*.h files are legacy files, kept for backward compatibility.
+//
+
+#ifndef LOG4CPP_CONFIG_PROJECT_COMMON_H
+#define LOG4CPP_CONFIG_PROJECT_COMMON_H
+
+/* Name of package */
+#ifndef LOG4CPP_PACKAGE
+#define LOG4CPP_PACKAGE "log4cpp"
+#endif
+
+/* Define to the full name of this package. */
+#ifndef LOG4CPP_PACKAGE_NAME
+#define LOG4CPP_PACKAGE_NAME "log4cpp"
+#endif
+
+/* Define to the full name and version of this package. */
+#ifndef LOG4CPP_PACKAGE_STRING
+#define LOG4CPP_PACKAGE_STRING "log4cpp 1.1.6"
+#endif
+
+/* Define to the one symbol short name of this package. */
+#ifndef LOG4CPP_PACKAGE_TARNAME
+#define LOG4CPP_PACKAGE_TARNAME "log4cpp"
... 661 lines suppressed ...
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-02-14 23:26:35
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 516e8ba2ec87c697d0afb2aea42d51b80095930f (commit)
from 907e8a1e2a0d32ebefaefca651ac9dfdddeade4f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 516e8ba2ec87c697d0afb2aea42d51b80095930f
Author: Alexander Perepelkin <san...@us...>
Date: Sun Feb 15 00:26:04 2026 +0100
index.html, ChangeLog
diff --git a/ChangeLog b/ChangeLog
index 6810876..ad7dc8c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,29 @@
+2026-02-12 21:39 sanchouss_
+ * Sync lib versions in CMakeLists.txt and configure.in, set 1.1.6
+
+2026-02-12 21:21 sanchouss_
+ * Bunch of renaming for the tests:
+ testConfig.log4cpp.properties -> testPropertyConfig.log4cpp.properties
+ testConfig.log4cpp.dailyroll.properties -> testDailyRollingFileAppender.log4cpp.properties
+ testConfig.log4cpp.dailyroll.nt.properties -> testDailyRollingFileAppender.log4cpp.nt.properties
+ log4cpp.property -> testPropConfig.log4cpp.properties
+ log4cpp.nt.property -> testPropConfig.log4cpp.nt.properties
+ testConfig.cpp -> testSimpleConfig.cpp
+ log4cpp.init -> testSimpleConfig.log4cpp.init
+
+2026-02-11 23:13 sanchouss_
+ * CMake: add test build support using CTest
+ Collect test*.cpp sources, build them against log4cpp (shared or static), and register tests with CTest.
+
+2026-02-09 22:35 sanchouss_
+ * Building examples is enabled via the LOG4CPP_BUILD_EXAMPLES option.
+ CMake usage examples are provided for both scenarios: importing a CMake-installed log4cpp library and using
+ log4cpp as a CMake subproject.
+ Both shared and static library variants are demonstrated.
+ The CMake usage examples can be built either as part of the log4cpp library (when LOG4CPP_BUILD_EXAMPLES is
+ enabled) or as standalone CMake applications that import or include log4cpp from their own directories.
+ Emulate autotools behaviour and generate include/log4cpp/config.h from Autotools-style config.h.in
+
2025-12-12 20:18 sanchouss_
* Fix few compilation warnings
* Reformat source codebase automatically with clang-format-21
diff --git a/doc/html/index.html b/doc/html/index.html
index 141c40a..b4f6ee0 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2025-12-12</span> |</div>
+2026-02-15</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -648,6 +648,16 @@ WARNING: releases from the development branch are a 'work in progress' and may f
<p>Each release will receive a tag named REL_x_y_z or prefixed with REL_x.y.z</p>
<small>
+<dl>
+<dt>1.1.6rc1 - master branch (15 February 2026)</dt>
+<dd>CMake support is enhanced. Building examples is enabled via the CMake's <code>LOG4CPP_BUILD_EXAMPLES</code> option.
+ CMake usage examples are provided for both scenarios: importing a CMake-installed log4cpp library and using
+ log4cpp as a CMake subproject.</dd>
+<dd>Emulate autotools behaviour when building via CMake and generate <code>include/log4cpp/config.h</code> from Autotools-style
+ <code>config.h.in</code></dd>
+<dd>Add test build support using CTest</dd>
+</dl>
+
<dl>
<dt>1.1.5 - master branch (01 December 2025)</dt>
<dd>Cmake script update: support release and debug build types (defaults to release); build both static and shared libraries; pass necessary cpp macros for debug</dd>
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 26 ++++++++++++++++++++++++++
doc/html/index.html | 12 +++++++++++-
2 files changed, 37 insertions(+), 1 deletion(-)
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-02-12 20:37:10
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 907e8a1e2a0d32ebefaefca651ac9dfdddeade4f (commit)
via 09f5ccd0fa5e22c2269634e434bf10f682144c85 (commit)
via a97cc15c587cd4e540580e8e952a529789e97fea (commit)
via 7d980b18c94425433cd6c563c2dcbe6f85bfa280 (commit)
from 95bb9cc7e65302754f1d14ba81d47e6ce7bd95fb (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 907e8a1e2a0d32ebefaefca651ac9dfdddeade4f
Author: Alexander Perepelkin <san...@us...>
Date: Thu Feb 12 21:29:35 2026 +0100
Sync lib versions in CMakeLists.txt and configure.in, set 1.1.6
diff --git a/configure.in b/configure.in
index 1dbc434..be686eb 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-AC_INIT([log4cpp],[1.1])
+AC_INIT([log4cpp],[1.1.6])
# autoconf 2.50 minimum required until 2025 to rebuild aclocal.m4, because the
# AC_CREATE_PREFIX_CONFIG_H macro needs the AS_DIRNAME macro; since then only
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 907e8a1e2a0d32ebefaefca651ac9dfdddeade4f
Author: Alexander Perepelkin <san...@us...>
Date: Thu Feb 12 21:29:35 2026 +0100
Sync lib versions in CMakeLists.txt and configure.in, set 1.1.6
diff --git a/configure.in b/configure.in
index 1dbc434..be686eb 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-AC_INIT([log4cpp],[1.1])
+AC_INIT([log4cpp],[1.1.6])
# autoconf 2.50 minimum required until 2025 to rebuild aclocal.m4, because the
# AC_CREATE_PREFIX_CONFIG_H macro needs the AS_DIRNAME macro; since then only
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 907e8a1e2a0d32ebefaefca651ac9dfdddeade4f
Author: Alexander Perepelkin <san...@us...>
Date: Thu Feb 12 21:29:35 2026 +0100
Sync lib versions in CMakeLists.txt and configure.in, set 1.1.6
diff --git a/configure.in b/configure.in
index 1dbc434..be686eb 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-AC_INIT([log4cpp],[1.1])
+AC_INIT([log4cpp],[1.1.6])
# autoconf 2.50 minimum required until 2025 to rebuild aclocal.m4, because the
# AC_CREATE_PREFIX_CONFIG_H macro needs the AS_DIRNAME macro; since then only
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 907e8a1e2a0d32ebefaefca651ac9dfdddeade4f
Author: Alexander Perepelkin <san...@us...>
Date: Thu Feb 12 21:29:35 2026 +0100
Sync lib versions in CMakeLists.txt and configure.in, set 1.1.6
diff --git a/configure.in b/configure.in
index 1dbc434..be686eb 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-AC_INIT([log4cpp],[1.1])
+AC_INIT([log4cpp],[1.1.6])
# autoconf 2.50 minimum required until 2025 to rebuild aclocal.m4, because the
# AC_CREATE_PREFIX_CONFIG_H macro needs the AS_DIRNAME macro; since then only
-----------------------------------------------------------------------
Summary of changes:
THANKS | 8 ++++----
bcb5/testConfig/testConfig.bpf | 5 +++--
configure.in | 2 +-
.../log4cpp_as_package/log4cpp_as_package.cpp | 3 ++-
.../log4cpp_as_subproject/log4cpp_as_subproject.cpp | 3 ++-
msvc10/log4cppRunnable/log4cppRunnable.vcxproj | 16 ++++++++--------
msvc10/testPropConfig/testPropConfig.vcxproj | 8 ++++----
msvc6/testPropConfig/testPropConfig.dsp | 4 ++--
msvc7/testPropConfig/testPropConfig.vcproj | 4 ++--
tests/CMakeLists.txt | 12 ++++++------
tests/Makefile.am | 16 +++++++++-------
tests/jamfile | 2 +-
tests/testDailyRollingFileAppender.cpp | 4 ++--
...> testDailyRollingFileAppender.log4cpp.nt.properties} | 0
...s => testDailyRollingFileAppender.log4cpp.properties} | 0
tests/testPropConfig.cpp | 6 +++---
....nt.property => testPropConfig.log4cpp.nt.properties} | 0
...og4cpp.property => testPropConfig.log4cpp.properties} | 0
tests/testPropertyConfig.cpp | 6 +++---
....properties => testPropertyConfig.log4cpp.properties} | 0
tests/{testConfig.cpp => testSimpleConfig.cpp} | 6 +++---
tests/{log4cpp.init => testSimpleConfig.log4cpp.init} | 0
tests/testmain.cpp | 1 +
23 files changed, 56 insertions(+), 50 deletions(-)
rename tests/{testConfig.log4cpp.dailyroll.nt.properties => testDailyRollingFileAppender.log4cpp.nt.properties} (100%)
rename tests/{testConfig.log4cpp.dailyroll.properties => testDailyRollingFileAppender.log4cpp.properties} (100%)
rename tests/{log4cpp.nt.property => testPropConfig.log4cpp.nt.properties} (100%)
rename tests/{log4cpp.property => testPropConfig.log4cpp.properties} (100%)
rename tests/{testConfig.log4cpp.properties => testPropertyConfig.log4cpp.properties} (100%)
rename tests/{testConfig.cpp => testSimpleConfig.cpp} (91%)
rename tests/{log4cpp.init => testSimpleConfig.log4cpp.init} (100%)
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-02-11 22:46:25
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 95bb9cc7e65302754f1d14ba81d47e6ce7bd95fb (commit)
via f473c4542e1ee7c60ca6cb2ebcd9e88a523a09fa (commit)
via ec038de18f8db6f49f4a7b4e3d38bd8084e3bb20 (commit)
via 5b1d56f234254000db81062acb07b7e51a7b6e12 (commit)
from f88cdf00ece1dbe04cd97bf78b614775e72e2e98 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 95bb9cc7e65302754f1d14ba81d47e6ce7bd95fb
Author: Alexander Perepelkin <san...@us...>
Date: Wed Feb 11 23:13:37 2026 +0100
CMake: add test build support using CTest
Collect test*.cpp sources, build them against log4cpp (shared or static), and register tests with CTest.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e9a3efe..bf1527e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -220,6 +220,8 @@ INSTALL (
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/log4cpp
)
+ENABLE_TESTING()
+ADD_SUBDIRECTORY ( tests )
IF ( LOG4CPP_BUILD_EXAMPLES AND LOG4CPP_IS_TOP_LEVEL )
ADD_SUBDIRECTORY ( examples )
ENDIF ()
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 0000000..5746144
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,104 @@
+# CMakeLists.txt
+#
+# Alexander Perepelkin san...@us...
+#
+# Builds tests for log4cpp.
+# Collects all test source files in this directory and builds them against the log4cpp library and threading support.
+# Tests can be executed using CTest.
+
+cmake_minimum_required(VERSION 3.10)
+
+project(log4cpp_tests LANGUAGES CXX)
+
+if(NOT TARGET log4cpp::log4cpp_shared)
+ message(STATUS "log4cpp::log4cpp_shared target not defined")
+endif()
+
+# pthread is needed on POSIX for threading
+find_package(Threads REQUIRED)
+
+# There are few CppUnit based test cases to include yet:
+#find_package(CppUnit REQUIRED)
+
+# Gather test sources
+file(GLOB TEST_EXECUTABLE_SOURCES "test*.cpp")
+# Remove CppUnit-based file for now
+list(REMOVE_ITEM TEST_EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/testNDCMain.cpp")
+
+if(WIN32)
+ list(REMOVE_ITEM TEST_EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/testbench.cpp")
+else()
+ list(REMOVE_ITEM TEST_EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/testNTEventLog.cpp")
+endif()
+
+# Helper sources (with no main function)
+set(TEST_AUX_SOURCES)
+
+if(NOT WIN32)
+list(APPEND TEST_AUX_SOURCES
+ Clock.cpp
+)
+endif()
+
+if(TEST_EXECUTABLE_SOURCES)
+ message(STATUS "Found test source files: ${TEST_EXECUTABLE_SOURCES}")
+else()
+ message(WARNING "No test sources found in ${CMAKE_CURRENT_SOURCE_DIR}")
+endif()
+
+if(TARGET log4cpp::log4cpp_shared)
+ set(LOG4CPP_TEST_LIB log4cpp::log4cpp_shared)
+elseif(TARGET log4cpp::log4cpp_static)
+ set(LOG4CPP_TEST_LIB log4cpp::log4cpp_static)
+else()
+ message(FATAL_ERROR "No log4cpp::log4cpp_shared or log4cpp::log4cpp_static library target found")
+endif()
+
+# Build each test as an executable
+foreach(test_source IN LISTS TEST_EXECUTABLE_SOURCES)
+ # Remove extension to form target name
+ get_filename_component(test_name ${test_source} NAME_WE)
+
+ add_executable(${test_name} ${test_source} ${TEST_AUX_SOURCES})
+
+ # include src dir for "Properties.hh"
+ TARGET_INCLUDE_DIRECTORIES ( ${test_name}
+ PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+ )
+ # Link against log4cpp (shared or static) and threads; includes are added automatically
+ target_link_libraries(${test_name} PRIVATE ${LOG4CPP_TEST_LIB} Threads::Threads)
+
+ # Add test to CTest
+ add_test(NAME ${test_name} COMMAND ${test_name})
+ set_tests_properties(${test_name} PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+endforeach()
+
+# List of resource files to copy
+set(TEST_RESOURCE_FILES
+ "${CMAKE_CURRENT_SOURCE_DIR}/log4cpp.init"
+ "${CMAKE_CURRENT_SOURCE_DIR}/log4cpp.nt.property"
+ "${CMAKE_CURRENT_SOURCE_DIR}/log4cpp.properties"
+ "${CMAKE_CURRENT_SOURCE_DIR}/log4cpp.property"
+ "${CMAKE_CURRENT_SOURCE_DIR}/testConfig.log4cpp.dailyroll.properties"
+ "${CMAKE_CURRENT_SOURCE_DIR}/testConfig.log4cpp.dailyroll.nt.properties"
+ "${CMAKE_CURRENT_SOURCE_DIR}/testConfig.log4cpp.properties"
+ "${CMAKE_CURRENT_SOURCE_DIR}/testProperties.properties"
+)
+
+# Directory where resources will be copied
+set(TEST_RESOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
+
+# Copy all resources at once
+add_custom_target(copy_test_resources ALL
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${TEST_RESOURCE_DIR}
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${TEST_RESOURCE_FILES}
+ ${TEST_RESOURCE_DIR}
+ # Copy directory nesteddir
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ ${CMAKE_CURRENT_SOURCE_DIR}/nesteddir
+ ${TEST_RESOURCE_DIR}/nesteddir
+ COMMENT "Copying test resource files to ${TEST_RESOURCE_DIR}"
+)
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 95bb9cc7e65302754f1d14ba81d47e6ce7bd95fb
Author: Alexander Perepelkin <san...@us...>
Date: Wed Feb 11 23:13:37 2026 +0100
CMake: add test build support using CTest
Collect test*.cpp sources, build them against log4cpp (shared or static), and register tests with CTest.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e9a3efe..bf1527e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -220,6 +220,8 @@ INSTALL (
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/log4cpp
)
+ENABLE_TESTING()
+ADD_SUBDIRECTORY ( tests )
IF ( LOG4CPP_BUILD_EXAMPLES AND LOG4CPP_IS_TOP_LEVEL )
ADD_SUBDIRECTORY ( examples )
ENDIF ()
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 0000000..5746144
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,104 @@
+# CMakeLists.txt
+#
+# Alexander Perepelkin san...@us...
+#
+# Builds tests for log4cpp.
+# Collects all test source files in this directory and builds them against the log4cpp library and threading support.
+# Tests can be executed using CTest.
+
+cmake_minimum_required(VERSION 3.10)
+
+project(log4cpp_tests LANGUAGES CXX)
+
+if(NOT TARGET log4cpp::log4cpp_shared)
+ message(STATUS "log4cpp::log4cpp_shared target not defined")
+endif()
+
+# pthread is needed on POSIX for threading
+find_package(Threads REQUIRED)
+
+# There are few CppUnit based test cases to include yet:
+#find_package(CppUnit REQUIRED)
+
+# Gather test sources
+file(GLOB TEST_EXECUTABLE_SOURCES "test*.cpp")
+# Remove CppUnit-based file for now
+list(REMOVE_ITEM TEST_EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/testNDCMain.cpp")
+
+if(WIN32)
+ list(REMOVE_ITEM TEST_EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/testbench.cpp")
+else()
+ list(REMOVE_ITEM TEST_EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/testNTEventLog.cpp")
+endif()
+
+# Helper sources (with no main function)
+set(TEST_AUX_SOURCES)
+
+if(NOT WIN32)
+list(APPEND TEST_AUX_SOURCES
+ Clock.cpp
+)
+endif()
+
+if(TEST_EXECUTABLE_SOURCES)
+ message(STATUS "Found test source files: ${TEST_EXECUTABLE_SOURCES}")
+else()
+ message(WARNING "No test sources found in ${CMAKE_CURRENT_SOURCE_DIR}")
+endif()
+
+if(TARGET log4cpp::log4cpp_shared)
+ set(LOG4CPP_TEST_LIB log4cpp::log4cpp_shared)
+elseif(TARGET log4cpp::log4cpp_static)
+ set(LOG4CPP_TEST_LIB log4cpp::log4cpp_static)
+else()
+ message(FATAL_ERROR "No log4cpp::log4cpp_shared or log4cpp::log4cpp_static library target found")
+endif()
+
+# Build each test as an executable
+foreach(test_source IN LISTS TEST_EXECUTABLE_SOURCES)
+ # Remove extension to form target name
+ get_filename_component(test_name ${test_source} NAME_WE)
+
+ add_executable(${test_name} ${test_source} ${TEST_AUX_SOURCES})
+
+ # include src dir for "Properties.hh"
+ TARGET_INCLUDE_DIRECTORIES ( ${test_name}
+ PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+ )
+ # Link against log4cpp (shared or static) and threads; includes are added automatically
+ target_link_libraries(${test_name} PRIVATE ${LOG4CPP_TEST_LIB} Threads::Threads)
+
+ # Add test to CTest
+ add_test(NAME ${test_name} COMMAND ${test_name})
+ set_tests_properties(${test_name} PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+endforeach()
+
+# List of resource files to copy
+set(TEST_RESOURCE_FILES
+ "${CMAKE_CURRENT_SOURCE_DIR}/log4cpp.init"
+ "${CMAKE_CURRENT_SOURCE_DIR}/log4cpp.nt.property"
+ "${CMAKE_CURRENT_SOURCE_DIR}/log4cpp.properties"
+ "${CMAKE_CURRENT_SOURCE_DIR}/log4cpp.property"
+ "${CMAKE_CURRENT_SOURCE_DIR}/testConfig.log4cpp.dailyroll.properties"
+ "${CMAKE_CURRENT_SOURCE_DIR}/testConfig.log4cpp.dailyroll.nt.properties"
+ "${CMAKE_CURRENT_SOURCE_DIR}/testConfig.log4cpp.properties"
+ "${CMAKE_CURRENT_SOURCE_DIR}/testProperties.properties"
+)
+
+# Directory where resources will be copied
+set(TEST_RESOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
+
+# Copy all resources at once
+add_custom_target(copy_test_resources ALL
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${TEST_RESOURCE_DIR}
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${TEST_RESOURCE_FILES}
+ ${TEST_RESOURCE_DIR}
+ # Copy directory nesteddir
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ ${CMAKE_CURRENT_SOURCE_DIR}/nesteddir
+ ${TEST_RESOURCE_DIR}/nesteddir
+ COMMENT "Copying test resource files to ${TEST_RESOURCE_DIR}"
+)
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 95bb9cc7e65302754f1d14ba81d47e6ce7bd95fb
Author: Alexander Perepelkin <san...@us...>
Date: Wed Feb 11 23:13:37 2026 +0100
CMake: add test build support using CTest
Collect test*.cpp sources, build them against log4cpp (shared or static), and register tests with CTest.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e9a3efe..bf1527e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -220,6 +220,8 @@ INSTALL (
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/log4cpp
)
+ENABLE_TESTING()
+ADD_SUBDIRECTORY ( tests )
IF ( LOG4CPP_BUILD_EXAMPLES AND LOG4CPP_IS_TOP_LEVEL )
ADD_SUBDIRECTORY ( examples )
ENDIF ()
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 0000000..5746144
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,104 @@
+# CMakeLists.txt
+#
+# Alexander Perepelkin san...@us...
+#
+# Builds tests for log4cpp.
+# Collects all test source files in this directory and builds them against the log4cpp library and threading support.
+# Tests can be executed using CTest.
+
+cmake_minimum_required(VERSION 3.10)
+
+project(log4cpp_tests LANGUAGES CXX)
+
+if(NOT TARGET log4cpp::log4cpp_shared)
+ message(STATUS "log4cpp::log4cpp_shared target not defined")
+endif()
+
+# pthread is needed on POSIX for threading
+find_package(Threads REQUIRED)
+
+# There are few CppUnit based test cases to include yet:
+#find_package(CppUnit REQUIRED)
+
+# Gather test sources
+file(GLOB TEST_EXECUTABLE_SOURCES "test*.cpp")
+# Remove CppUnit-based file for now
+list(REMOVE_ITEM TEST_EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/testNDCMain.cpp")
+
+if(WIN32)
+ list(REMOVE_ITEM TEST_EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/testbench.cpp")
+else()
+ list(REMOVE_ITEM TEST_EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/testNTEventLog.cpp")
+endif()
+
+# Helper sources (with no main function)
+set(TEST_AUX_SOURCES)
+
+if(NOT WIN32)
+list(APPEND TEST_AUX_SOURCES
+ Clock.cpp
+)
+endif()
+
+if(TEST_EXECUTABLE_SOURCES)
+ message(STATUS "Found test source files: ${TEST_EXECUTABLE_SOURCES}")
+else()
+ message(WARNING "No test sources found in ${CMAKE_CURRENT_SOURCE_DIR}")
+endif()
+
+if(TARGET log4cpp::log4cpp_shared)
+ set(LOG4CPP_TEST_LIB log4cpp::log4cpp_shared)
+elseif(TARGET log4cpp::log4cpp_static)
+ set(LOG4CPP_TEST_LIB log4cpp::log4cpp_static)
+else()
+ message(FATAL_ERROR "No log4cpp::log4cpp_shared or log4cpp::log4cpp_static library target found")
+endif()
+
+# Build each test as an executable
+foreach(test_source IN LISTS TEST_EXECUTABLE_SOURCES)
+ # Remove extension to form target name
+ get_filename_component(test_name ${test_source} NAME_WE)
+
+ add_executable(${test_name} ${test_source} ${TEST_AUX_SOURCES})
+
+ # include src dir for "Properties.hh"
+ TARGET_INCLUDE_DIRECTORIES ( ${test_name}
+ PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+ )
+ # Link against log4cpp (shared or static) and threads; includes are added automatically
+ target_link_libraries(${test_name} PRIVATE ${LOG4CPP_TEST_LIB} Threads::Threads)
+
+ # Add test to CTest
+ add_test(NAME ${test_name} COMMAND ${test_name})
+ set_tests_properties(${test_name} PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+endforeach()
+
+# List of resource files to copy
+set(TEST_RESOURCE_FILES
+ "${CMAKE_CURRENT_SOURCE_DIR}/log4cpp.init"
+ "${CMAKE_CURRENT_SOURCE_DIR}/log4cpp.nt.property"
+ "${CMAKE_CURRENT_SOURCE_DIR}/log4cpp.properties"
+ "${CMAKE_CURRENT_SOURCE_DIR}/log4cpp.property"
+ "${CMAKE_CURRENT_SOURCE_DIR}/testConfig.log4cpp.dailyroll.properties"
+ "${CMAKE_CURRENT_SOURCE_DIR}/testConfig.log4cpp.dailyroll.nt.properties"
+ "${CMAKE_CURRENT_SOURCE_DIR}/testConfig.log4cpp.properties"
+ "${CMAKE_CURRENT_SOURCE_DIR}/testProperties.properties"
+)
+
+# Directory where resources will be copied
+set(TEST_RESOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
+
+# Copy all resources at once
+add_custom_target(copy_test_resources ALL
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${TEST_RESOURCE_DIR}
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${TEST_RESOURCE_FILES}
+ ${TEST_RESOURCE_DIR}
+ # Copy directory nesteddir
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ ${CMAKE_CURRENT_SOURCE_DIR}/nesteddir
+ ${TEST_RESOURCE_DIR}/nesteddir
+ COMMENT "Copying test resource files to ${TEST_RESOURCE_DIR}"
+)
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 95bb9cc7e65302754f1d14ba81d47e6ce7bd95fb
Author: Alexander Perepelkin <san...@us...>
Date: Wed Feb 11 23:13:37 2026 +0100
CMake: add test build support using CTest
Collect test*.cpp sources, build them against log4cpp (shared or static), and register tests with CTest.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e9a3efe..bf1527e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -220,6 +220,8 @@ INSTALL (
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/log4cpp
)
+ENABLE_TESTING()
+ADD_SUBDIRECTORY ( tests )
IF ( LOG4CPP_BUILD_EXAMPLES AND LOG4CPP_IS_TOP_LEVEL )
ADD_SUBDIRECTORY ( examples )
ENDIF ()
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 0000000..5746144
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,104 @@
+# CMakeLists.txt
+#
+# Alexander Perepelkin san...@us...
+#
+# Builds tests for log4cpp.
+# Collects all test source files in this directory and builds them against the log4cpp library and threading support.
+# Tests can be executed using CTest.
+
+cmake_minimum_required(VERSION 3.10)
+
+project(log4cpp_tests LANGUAGES CXX)
+
+if(NOT TARGET log4cpp::log4cpp_shared)
+ message(STATUS "log4cpp::log4cpp_shared target not defined")
+endif()
+
+# pthread is needed on POSIX for threading
+find_package(Threads REQUIRED)
+
+# There are few CppUnit based test cases to include yet:
+#find_package(CppUnit REQUIRED)
+
+# Gather test sources
+file(GLOB TEST_EXECUTABLE_SOURCES "test*.cpp")
+# Remove CppUnit-based file for now
+list(REMOVE_ITEM TEST_EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/testNDCMain.cpp")
+
+if(WIN32)
+ list(REMOVE_ITEM TEST_EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/testbench.cpp")
+else()
+ list(REMOVE_ITEM TEST_EXECUTABLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/testNTEventLog.cpp")
+endif()
+
+# Helper sources (with no main function)
+set(TEST_AUX_SOURCES)
+
+if(NOT WIN32)
+list(APPEND TEST_AUX_SOURCES
+ Clock.cpp
+)
+endif()
+
+if(TEST_EXECUTABLE_SOURCES)
+ message(STATUS "Found test source files: ${TEST_EXECUTABLE_SOURCES}")
+else()
+ message(WARNING "No test sources found in ${CMAKE_CURRENT_SOURCE_DIR}")
+endif()
+
+if(TARGET log4cpp::log4cpp_shared)
+ set(LOG4CPP_TEST_LIB log4cpp::log4cpp_shared)
+elseif(TARGET log4cpp::log4cpp_static)
+ set(LOG4CPP_TEST_LIB log4cpp::log4cpp_static)
+else()
+ message(FATAL_ERROR "No log4cpp::log4cpp_shared or log4cpp::log4cpp_static library target found")
+endif()
+
+# Build each test as an executable
+foreach(test_source IN LISTS TEST_EXECUTABLE_SOURCES)
... 62 lines suppressed ...
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-02-10 22:07:47
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via f88cdf00ece1dbe04cd97bf78b614775e72e2e98 (commit)
via 757e846946ce77fc503e5f4a7ebe0e107bf2a269 (commit)
via 4ca28ef4d07a107fbb3286e1c4d332b74d383a0b (commit)
via c08c0dab44048dd6b6949c9c3bcbb2990c38aef9 (commit)
from 4d87c33c33d070210f5805f052bdd1905b8de845 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit f88cdf00ece1dbe04cd97bf78b614775e72e2e98
Author: Alexander Perepelkin <san...@us...>
Date: Tue Feb 10 16:22:33 2026 +0100
Building examples is enabled via the LOG4CPP_BUILD_EXAMPLES option.
CMake usage examples are provided for both scenarios: importing a CMake-installed log4cpp library and using log4cpp as a CMake subproject.
Both shared and static library variants are demonstrated.
The CMake usage examples can be built either as part of the log4cpp library (when LOG4CPP_BUILD_EXAMPLES is enabled) or as standalone CMake applications that import or include log4cpp from their own directories.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e55761a..18eabeb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@
# Alexander Perepelkin san...@us...
#
# Note:
-# (1) A dummy file include/config.h is required (remnant from configure)
+# (1) A dummy file include/config.h is required (remnant from configure, produced by command ./configure)
# (2) Default installation directory is /usr/local, override with -DCMAKE_INSTALL_PREFIX="" during cmake
# invocation
# (3) Do the usual "make clean all" to build the library
@@ -20,12 +20,20 @@ INCLUDE ( CMakePackageConfigHelpers )
SET ( LOG4CPP_LIBRARY_NAME "log4cpp" )
#SET ( CMAKE_VERBOSE_MAKEFILE ON )
+IF ( CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR )
+ SET ( LOG4CPP_IS_TOP_LEVEL ON )
+ELSE ()
+ SET ( LOG4CPP_IS_TOP_LEVEL OFF )
+ENDIF ()
+
FIND_PACKAGE ( Threads REQUIRED )
IF (NOT CMAKE_BUILD_TYPE)
SET ( CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." )
ENDIF ()
+OPTION ( LOG4CPP_BUILD_EXAMPLES "Build log4cpp examples" OFF )
+
# for macOS use var APPLE
IF (WIN32)
SET ( CMAKE_DEBUG_POSTFIX "D" )
@@ -199,3 +207,7 @@ INSTALL (
${CMAKE_CURRENT_BINARY_DIR}/log4cppConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/log4cpp
)
+
+IF ( LOG4CPP_BUILD_EXAMPLES AND LOG4CPP_IS_TOP_LEVEL )
+ ADD_SUBDIRECTORY ( examples )
+ENDIF ()
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
new file mode 100644
index 0000000..1bf2417
--- /dev/null
+++ b/examples/CMakeLists.txt
@@ -0,0 +1,6 @@
+# examples/CMakeLists.txt
+# Forward building to subdirectories if examples are enabled
+
+if(LOG4CPP_BUILD_EXAMPLES)
+ add_subdirectory(cmake_usages)
+endif()
diff --git a/examples/cmake_usages/CMakeLists.txt b/examples/cmake_usages/CMakeLists.txt
new file mode 100644
index 0000000..9066bb2
--- /dev/null
+++ b/examples/cmake_usages/CMakeLists.txt
@@ -0,0 +1,5 @@
+# examples/cmake_usages/CMakeLists.txt
+# Add each subfolder example
+
+add_subdirectory(log4cpp_as_package)
+add_subdirectory(log4cpp_as_subproject)
diff --git a/examples/cmake_usages/log4cpp_as_package/CMakeLists.txt b/examples/cmake_usages/log4cpp_as_package/CMakeLists.txt
new file mode 100644
index 0000000..50cc3f0
--- /dev/null
+++ b/examples/cmake_usages/log4cpp_as_package/CMakeLists.txt
@@ -0,0 +1,42 @@
+#
+# Note:
+# Example builds two targets, each against either shared or static log4cpp library.
+# If only one of them is available, linking to another one should be removed.
+#
+cmake_minimum_required(VERSION 3.10)
+project(log4cpp_as_package_example LANGUAGES CXX)
+
+# Determine if this example is being built standalone and not being included from top-level CMake as one of examples
+get_directory_property(HAS_PARENT PARENT_DIRECTORY)
+if(NOT HAS_PARENT)
+ set(EXAMPLE_BUILT_ALONE ON)
+else()
+ set(EXAMPLE_BUILT_ALONE OFF)
+endif()
+
+# If built standalone, find the (already) installed log4cpp package
+if(EXAMPLE_BUILT_ALONE)
+ # Find log4cpp installed via CMake export files
+ find_package(log4cpp REQUIRED)
+endif()
+
+# Create executable linked to shared library
+add_executable(log4cpp_as_package_example log4cpp_as_package.cpp)
+# Create executable with static library
+add_executable(log4cpp_as_package_example_static log4cpp_as_package.cpp)
+
+target_compile_features(log4cpp_as_package_example PUBLIC cxx_std_17)
+target_compile_features(log4cpp_as_package_example_static PUBLIC cxx_std_17)
+
+# Link 1st exe against log4cpp shared library
+target_link_libraries(log4cpp_as_package_example PRIVATE log4cpp::log4cpp_shared)
+# Link 2nd exe against log4cpp static library
+target_link_libraries(log4cpp_as_package_example_static PRIVATE log4cpp::log4cpp_static)
+
+# when linking to log4cpp::log4cpp_static, link to threads shared lib too
+find_package(Threads REQUIRED)
+target_link_libraries(log4cpp_as_package_example_static PRIVATE Threads::Threads)
+
+file(COPY ${PROJECT_SOURCE_DIR}/resources
+# DESTINATION ${CMAKE_BINARY_DIR})
+ DESTINATION .)
diff --git a/examples/cmake_usages/log4cpp_as_package/log4cpp_as_package.cpp b/examples/cmake_usages/log4cpp_as_package/log4cpp_as_package.cpp
new file mode 100644
index 0000000..84006a3
--- /dev/null
+++ b/examples/cmake_usages/log4cpp_as_package/log4cpp_as_package.cpp
@@ -0,0 +1,17 @@
+#include <filesystem>
+#include <log4cpp/Category.hh>
+
+#include "log4cpp/PropertyConfigurator.hh"
+
+// Specify the directory that contains log4cpp’s CMake configuration files when running CMake configuration:
+// cmake <...> -Dlog4cpp_DIR=<log4cpp_installation_path>/lib/cmake/log4cpp
+int main() {
+ std::filesystem::path initFile = std::filesystem::current_path() / "resources" / "log4cpp.properties";
+ std::string initFileName = initFile.string();
+
+ log4cpp::PropertyConfigurator::configure(initFileName);
+ log4cpp::Category &root = log4cpp::Category::getRoot();
+
+ root.info("Hello, log4cpp lib as imported cmake package!");
+ return 0;
+}
diff --git a/examples/cmake_usages/log4cpp_as_package/resources/log4cpp.properties b/examples/cmake_usages/log4cpp_as_package/resources/log4cpp.properties
new file mode 100644
index 0000000..c965d1b
--- /dev/null
+++ b/examples/cmake_usages/log4cpp_as_package/resources/log4cpp.properties
@@ -0,0 +1,6 @@
+# log4cpp.properties
+
+log4cpp.rootCategory=DEBUG, rootAppender
+log4cpp.appender.rootAppender=ConsoleAppender
+log4cpp.appender.rootAppender.layout=PatternLayout
+log4cpp.appender.rootAppender.layout.ConversionPattern=%d [%p] %m%n
\ No newline at end of file
diff --git a/examples/cmake_usages/log4cpp_as_subproject/CMakeLists.txt b/examples/cmake_usages/log4cpp_as_subproject/CMakeLists.txt
new file mode 100644
index 0000000..b0dd862
--- /dev/null
+++ b/examples/cmake_usages/log4cpp_as_subproject/CMakeLists.txt
@@ -0,0 +1,50 @@
+#
+# Note:
+# Example builds two targets, each against either shared or static log4cpp library.
+# If only one of them is available, linking to another one should be removed.
+#
+cmake_minimum_required(VERSION 3.10)
+project(log4cpp_as_subproject_example LANGUAGES CXX)
+
+# Ensure shared libraries are built by subprojects
+#set(BUILD_SHARED_LIBS ON CACHE BOOL "")
+
+# Determine if this example is being built standalone and not being included from top-level CMake as one of examples
+get_directory_property(HAS_PARENT PARENT_DIRECTORY)
+if(NOT HAS_PARENT)
+ set(EXAMPLE_BUILT_ALONE ON)
+else()
+ set(EXAMPLE_BUILT_ALONE OFF)
+endif()
+
+# If built standalone, add the project log4cpp as a subproject (subdirectory)
+if(EXAMPLE_BUILT_ALONE)
+ add_subdirectory(../../.. log4cpp-build)
+endif()
+
+# Sanity check: we require shared log4cpp
+#if(NOT TARGET log4cpp::log4cpp_shared)
+# message(FATAL_ERROR "log4cpp::log4cpp_shared target not available")
+#endif()
+
+# Sanity check: we require static log4cpp
+#if(NOT TARGET log4cpp::log4cpp_static)
+# message(FATAL_ERROR "log4cpp::log4cpp_static target not available")
+#endif()
+
+# Create executable linked to shared library
+add_executable(log4cpp_as_subproject_example log4cpp_as_subproject.cpp)
+# Create executable with static library
+add_executable(log4cpp_as_subproject_example_static log4cpp_as_subproject.cpp)
+
+target_compile_features(log4cpp_as_subproject_example PUBLIC cxx_std_17)
+target_compile_features(log4cpp_as_subproject_example_static PUBLIC cxx_std_17)
+
+# Link 1st exe against log4cpp shared library
+target_link_libraries(log4cpp_as_subproject_example PRIVATE log4cpp::log4cpp_shared)
+# Link 2nd exe against log4cpp static library
+target_link_libraries(log4cpp_as_subproject_example_static PRIVATE log4cpp::log4cpp_static)
+
+file(COPY ${PROJECT_SOURCE_DIR}/resources
+ # DESTINATION ${CMAKE_BINARY_DIR})
+ DESTINATION .)
diff --git a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
new file mode 100644
index 0000000..5cb0ced
--- /dev/null
+++ b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
@@ -0,0 +1,17 @@
+#include <filesystem>
+#include <log4cpp/Category.hh>
+
+#include "log4cpp/PropertyConfigurator.hh"
+
+// The log4cpp CMake project is included as a subdirectory,
+// and the entire log4cpp library is built as part of this Cmake project.
+int main() {
+ std::filesystem::path initFile = std::filesystem::current_path() / "resources" / "log4cpp.properties";
+ std::string initFileName = initFile.string();
+
+ log4cpp::PropertyConfigurator::configure(initFileName);
+ log4cpp::Category &root = log4cpp::Category::getRoot();
+
+ root.info("Hello, log4cpp lib as cmake subdirectory!");
+ return 0;
+}
diff --git a/examples/cmake_usages/log4cpp_as_subproject/resources/log4cpp.properties b/examples/cmake_usages/log4cpp_as_subproject/resources/log4cpp.properties
new file mode 100644
index 0000000..c965d1b
--- /dev/null
+++ b/examples/cmake_usages/log4cpp_as_subproject/resources/log4cpp.properties
@@ -0,0 +1,6 @@
+# log4cpp.properties
+
+log4cpp.rootCategory=DEBUG, rootAppender
+log4cpp.appender.rootAppender=ConsoleAppender
+log4cpp.appender.rootAppender.layout=PatternLayout
+log4cpp.appender.rootAppender.layout.ConversionPattern=%d [%p] %m%n
\ No newline at end of file
http://sourceforge.net/p/log4cpp/codegit/ci/
commit f88cdf00ece1dbe04cd97bf78b614775e72e2e98
Author: Alexander Perepelkin <san...@us...>
Date: Tue Feb 10 16:22:33 2026 +0100
Building examples is enabled via the LOG4CPP_BUILD_EXAMPLES option.
CMake usage examples are provided for both scenarios: importing a CMake-installed log4cpp library and using log4cpp as a CMake subproject.
Both shared and static library variants are demonstrated.
The CMake usage examples can be built either as part of the log4cpp library (when LOG4CPP_BUILD_EXAMPLES is enabled) or as standalone CMake applications that import or include log4cpp from their own directories.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e55761a..18eabeb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@
# Alexander Perepelkin san...@us...
#
# Note:
-# (1) A dummy file include/config.h is required (remnant from configure)
+# (1) A dummy file include/config.h is required (remnant from configure, produced by command ./configure)
# (2) Default installation directory is /usr/local, override with -DCMAKE_INSTALL_PREFIX="" during cmake
# invocation
# (3) Do the usual "make clean all" to build the library
@@ -20,12 +20,20 @@ INCLUDE ( CMakePackageConfigHelpers )
SET ( LOG4CPP_LIBRARY_NAME "log4cpp" )
#SET ( CMAKE_VERBOSE_MAKEFILE ON )
+IF ( CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR )
+ SET ( LOG4CPP_IS_TOP_LEVEL ON )
+ELSE ()
+ SET ( LOG4CPP_IS_TOP_LEVEL OFF )
+ENDIF ()
+
FIND_PACKAGE ( Threads REQUIRED )
IF (NOT CMAKE_BUILD_TYPE)
SET ( CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." )
ENDIF ()
+OPTION ( LOG4CPP_BUILD_EXAMPLES "Build log4cpp examples" OFF )
+
# for macOS use var APPLE
IF (WIN32)
SET ( CMAKE_DEBUG_POSTFIX "D" )
@@ -199,3 +207,7 @@ INSTALL (
${CMAKE_CURRENT_BINARY_DIR}/log4cppConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/log4cpp
)
+
+IF ( LOG4CPP_BUILD_EXAMPLES AND LOG4CPP_IS_TOP_LEVEL )
+ ADD_SUBDIRECTORY ( examples )
+ENDIF ()
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
new file mode 100644
index 0000000..1bf2417
--- /dev/null
+++ b/examples/CMakeLists.txt
@@ -0,0 +1,6 @@
+# examples/CMakeLists.txt
+# Forward building to subdirectories if examples are enabled
+
+if(LOG4CPP_BUILD_EXAMPLES)
+ add_subdirectory(cmake_usages)
+endif()
diff --git a/examples/cmake_usages/CMakeLists.txt b/examples/cmake_usages/CMakeLists.txt
new file mode 100644
index 0000000..9066bb2
--- /dev/null
+++ b/examples/cmake_usages/CMakeLists.txt
@@ -0,0 +1,5 @@
+# examples/cmake_usages/CMakeLists.txt
+# Add each subfolder example
+
+add_subdirectory(log4cpp_as_package)
+add_subdirectory(log4cpp_as_subproject)
diff --git a/examples/cmake_usages/log4cpp_as_package/CMakeLists.txt b/examples/cmake_usages/log4cpp_as_package/CMakeLists.txt
new file mode 100644
index 0000000..50cc3f0
--- /dev/null
+++ b/examples/cmake_usages/log4cpp_as_package/CMakeLists.txt
@@ -0,0 +1,42 @@
+#
+# Note:
+# Example builds two targets, each against either shared or static log4cpp library.
+# If only one of them is available, linking to another one should be removed.
+#
+cmake_minimum_required(VERSION 3.10)
+project(log4cpp_as_package_example LANGUAGES CXX)
+
+# Determine if this example is being built standalone and not being included from top-level CMake as one of examples
+get_directory_property(HAS_PARENT PARENT_DIRECTORY)
+if(NOT HAS_PARENT)
+ set(EXAMPLE_BUILT_ALONE ON)
+else()
+ set(EXAMPLE_BUILT_ALONE OFF)
+endif()
+
+# If built standalone, find the (already) installed log4cpp package
+if(EXAMPLE_BUILT_ALONE)
+ # Find log4cpp installed via CMake export files
+ find_package(log4cpp REQUIRED)
+endif()
+
+# Create executable linked to shared library
+add_executable(log4cpp_as_package_example log4cpp_as_package.cpp)
+# Create executable with static library
+add_executable(log4cpp_as_package_example_static log4cpp_as_package.cpp)
+
+target_compile_features(log4cpp_as_package_example PUBLIC cxx_std_17)
+target_compile_features(log4cpp_as_package_example_static PUBLIC cxx_std_17)
+
+# Link 1st exe against log4cpp shared library
+target_link_libraries(log4cpp_as_package_example PRIVATE log4cpp::log4cpp_shared)
+# Link 2nd exe against log4cpp static library
+target_link_libraries(log4cpp_as_package_example_static PRIVATE log4cpp::log4cpp_static)
+
+# when linking to log4cpp::log4cpp_static, link to threads shared lib too
+find_package(Threads REQUIRED)
+target_link_libraries(log4cpp_as_package_example_static PRIVATE Threads::Threads)
+
+file(COPY ${PROJECT_SOURCE_DIR}/resources
+# DESTINATION ${CMAKE_BINARY_DIR})
+ DESTINATION .)
diff --git a/examples/cmake_usages/log4cpp_as_package/log4cpp_as_package.cpp b/examples/cmake_usages/log4cpp_as_package/log4cpp_as_package.cpp
new file mode 100644
index 0000000..84006a3
--- /dev/null
+++ b/examples/cmake_usages/log4cpp_as_package/log4cpp_as_package.cpp
@@ -0,0 +1,17 @@
+#include <filesystem>
+#include <log4cpp/Category.hh>
+
+#include "log4cpp/PropertyConfigurator.hh"
+
+// Specify the directory that contains log4cpp’s CMake configuration files when running CMake configuration:
+// cmake <...> -Dlog4cpp_DIR=<log4cpp_installation_path>/lib/cmake/log4cpp
+int main() {
+ std::filesystem::path initFile = std::filesystem::current_path() / "resources" / "log4cpp.properties";
+ std::string initFileName = initFile.string();
+
+ log4cpp::PropertyConfigurator::configure(initFileName);
+ log4cpp::Category &root = log4cpp::Category::getRoot();
+
+ root.info("Hello, log4cpp lib as imported cmake package!");
+ return 0;
+}
diff --git a/examples/cmake_usages/log4cpp_as_package/resources/log4cpp.properties b/examples/cmake_usages/log4cpp_as_package/resources/log4cpp.properties
new file mode 100644
index 0000000..c965d1b
--- /dev/null
+++ b/examples/cmake_usages/log4cpp_as_package/resources/log4cpp.properties
@@ -0,0 +1,6 @@
+# log4cpp.properties
+
+log4cpp.rootCategory=DEBUG, rootAppender
+log4cpp.appender.rootAppender=ConsoleAppender
+log4cpp.appender.rootAppender.layout=PatternLayout
+log4cpp.appender.rootAppender.layout.ConversionPattern=%d [%p] %m%n
\ No newline at end of file
diff --git a/examples/cmake_usages/log4cpp_as_subproject/CMakeLists.txt b/examples/cmake_usages/log4cpp_as_subproject/CMakeLists.txt
new file mode 100644
index 0000000..b0dd862
--- /dev/null
+++ b/examples/cmake_usages/log4cpp_as_subproject/CMakeLists.txt
@@ -0,0 +1,50 @@
+#
+# Note:
+# Example builds two targets, each against either shared or static log4cpp library.
+# If only one of them is available, linking to another one should be removed.
+#
+cmake_minimum_required(VERSION 3.10)
+project(log4cpp_as_subproject_example LANGUAGES CXX)
+
+# Ensure shared libraries are built by subprojects
+#set(BUILD_SHARED_LIBS ON CACHE BOOL "")
+
+# Determine if this example is being built standalone and not being included from top-level CMake as one of examples
+get_directory_property(HAS_PARENT PARENT_DIRECTORY)
+if(NOT HAS_PARENT)
+ set(EXAMPLE_BUILT_ALONE ON)
+else()
+ set(EXAMPLE_BUILT_ALONE OFF)
+endif()
+
+# If built standalone, add the project log4cpp as a subproject (subdirectory)
+if(EXAMPLE_BUILT_ALONE)
+ add_subdirectory(../../.. log4cpp-build)
+endif()
+
+# Sanity check: we require shared log4cpp
+#if(NOT TARGET log4cpp::log4cpp_shared)
+# message(FATAL_ERROR "log4cpp::log4cpp_shared target not available")
+#endif()
+
+# Sanity check: we require static log4cpp
+#if(NOT TARGET log4cpp::log4cpp_static)
+# message(FATAL_ERROR "log4cpp::log4cpp_static target not available")
+#endif()
+
+# Create executable linked to shared library
+add_executable(log4cpp_as_subproject_example log4cpp_as_subproject.cpp)
+# Create executable with static library
+add_executable(log4cpp_as_subproject_example_static log4cpp_as_subproject.cpp)
+
+target_compile_features(log4cpp_as_subproject_example PUBLIC cxx_std_17)
+target_compile_features(log4cpp_as_subproject_example_static PUBLIC cxx_std_17)
+
+# Link 1st exe against log4cpp shared library
+target_link_libraries(log4cpp_as_subproject_example PRIVATE log4cpp::log4cpp_shared)
+# Link 2nd exe against log4cpp static library
+target_link_libraries(log4cpp_as_subproject_example_static PRIVATE log4cpp::log4cpp_static)
+
+file(COPY ${PROJECT_SOURCE_DIR}/resources
+ # DESTINATION ${CMAKE_BINARY_DIR})
+ DESTINATION .)
diff --git a/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
new file mode 100644
index 0000000..5cb0ced
--- /dev/null
+++ b/examples/cmake_usages/log4cpp_as_subproject/log4cpp_as_subproject.cpp
@@ -0,0 +1,17 @@
+#include <filesystem>
+#include <log4cpp/Category.hh>
+
+#include "log4cpp/PropertyConfigurator.hh"
+
+// The log4cpp CMake project is included as a subdirectory,
+// and the entire log4cpp library is built as part of this Cmake project.
+int main() {
+ std::filesystem::path initFile = std::filesystem::current_path() / "resources" / "log4cpp.properties";
+ std::string initFileName = initFile.string();
+
+ log4cpp::PropertyConfigurator::configure(initFileName);
... 550 lines suppressed ...
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2026-01-20 13:56:08
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 4d87c33c33d070210f5805f052bdd1905b8de845 (commit)
from 31e5cd5505fd33e4466fa1510f796ef27dd1d4f1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 4d87c33c33d070210f5805f052bdd1905b8de845
Author: Alexander Perepelkin <san...@us...>
Date: Tue Jan 20 14:55:16 2026 +0100
Exclude documentation and configuration from Github language statistics
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..7d60464
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,3 @@
+doc/** linguist-vendored
+config/** linguist-vendored
+m4/** linguist-vendored
\ No newline at end of file
-----------------------------------------------------------------------
Summary of changes:
.gitattributes | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 .gitattributes
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2025-12-12 19:46:52
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 31e5cd5505fd33e4466fa1510f796ef27dd1d4f1 (commit)
via f58a52284b102314e1f0f43eb602e611225ad4f5 (commit)
via ed9549d2cb68e3fe4a4e63f926fe4da31dbf4913 (commit)
via 1f520aa8523ccf967a973e88345aaf86fe5bbd5a (commit)
via 7eea25a6e549693835f4615eddc6956657f46279 (commit)
via 6a77cc74041955f6d162977ad9320d63788266d5 (commit)
from 7e80abbe6d4c6cefd674fc2952bf1e599478bf10 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 31e5cd5505fd33e4466fa1510f796ef27dd1d4f1
Author: Alexander Perepelkin <san...@us...>
Date: Fri Dec 12 20:45:16 2025 +0100
index.html, ChangeLog
diff --git a/ChangeLog b/ChangeLog
index ea85da3..6810876 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2025-12-12 20:18 sanchouss_
+ * Fix few compilation warnings
+ * Reformat source codebase automatically with clang-format-21
+ * Add .clang-format, BasedOnStyle: LLVM, with only minor tweaks to stay closer to the most of the current files
+ * Mirror git repository at github: https://github.com/log4cpp/log4cpp
+
2025-11-13 20:48 sanchouss_
* CMake script update; support for Embarcadero RAD Studio 12
diff --git a/doc/html/index.html b/doc/html/index.html
index c76f286..141c40a 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2025-12-01</span> |</div>
+2025-12-12</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -622,19 +622,19 @@ Log file A3.log is rolled over as soon as it reaches limit of 200 bytes, 1 backu
<p>
Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">SourceForge Git page</a> since version 1.1.1, CVS repo is stale now.
</p>
- Each release will receive a tag named REL_x_y_z.
- <p></p>
- <p>The project uses <a href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system.
+ <p>A mirror of the Git repository is also available on GitHub: <a
+ href="https://github.com/log4cpp/log4cpp">https://github.com/log4cpp/log4cpp</a></p>
+ <p>
To start working with a freshly checked out log4cpp repository, run <b><code>./autogen.sh</code></b>
first. This will create <code>./configure</code> and the necessary <code>Makefile.in</code>'s.
- You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4.
+ You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4 (<a href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system).
</p>
<p>Log4cpp of older versions (prior to version 1.1.1) is available also with CVS, see the <a href="https://sourceforge.net/p/log4cpp/code/">SourceForge CVS page</a> for instructions.</p>
<small>
CVS had two branches:
<table>
<tbody><tr><td>MAIN</td><td>for log4cpp development</td></tr>
- <tr><td>BRANCH_MAINT_0_2</td><td>for maintainance of log4cpp-stable (0.2.x)</td></tr>
+ <tr><td>BRANCH_MAINT_0_2</td><td>for maintenance of log4cpp-stable (0.2.x)</td></tr>
</tbody></table><br>
</small>
<a href="#begin">^</a>
@@ -645,6 +645,7 @@ Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">Sou
<p>
WARNING: releases from the development branch are a 'work in progress' and may fail to build, crash or redecorate your desktop.
</p>
+ <p>Each release will receive a tag named REL_x_y_z or prefixed with REL_x.y.z</p>
<small>
<dl>
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 31e5cd5505fd33e4466fa1510f796ef27dd1d4f1
Author: Alexander Perepelkin <san...@us...>
Date: Fri Dec 12 20:45:16 2025 +0100
index.html, ChangeLog
diff --git a/ChangeLog b/ChangeLog
index ea85da3..6810876 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2025-12-12 20:18 sanchouss_
+ * Fix few compilation warnings
+ * Reformat source codebase automatically with clang-format-21
+ * Add .clang-format, BasedOnStyle: LLVM, with only minor tweaks to stay closer to the most of the current files
+ * Mirror git repository at github: https://github.com/log4cpp/log4cpp
+
2025-11-13 20:48 sanchouss_
* CMake script update; support for Embarcadero RAD Studio 12
diff --git a/doc/html/index.html b/doc/html/index.html
index c76f286..141c40a 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2025-12-01</span> |</div>
+2025-12-12</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -622,19 +622,19 @@ Log file A3.log is rolled over as soon as it reaches limit of 200 bytes, 1 backu
<p>
Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">SourceForge Git page</a> since version 1.1.1, CVS repo is stale now.
</p>
- Each release will receive a tag named REL_x_y_z.
- <p></p>
- <p>The project uses <a href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system.
+ <p>A mirror of the Git repository is also available on GitHub: <a
+ href="https://github.com/log4cpp/log4cpp">https://github.com/log4cpp/log4cpp</a></p>
+ <p>
To start working with a freshly checked out log4cpp repository, run <b><code>./autogen.sh</code></b>
first. This will create <code>./configure</code> and the necessary <code>Makefile.in</code>'s.
- You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4.
+ You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4 (<a href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system).
</p>
<p>Log4cpp of older versions (prior to version 1.1.1) is available also with CVS, see the <a href="https://sourceforge.net/p/log4cpp/code/">SourceForge CVS page</a> for instructions.</p>
<small>
CVS had two branches:
<table>
<tbody><tr><td>MAIN</td><td>for log4cpp development</td></tr>
- <tr><td>BRANCH_MAINT_0_2</td><td>for maintainance of log4cpp-stable (0.2.x)</td></tr>
+ <tr><td>BRANCH_MAINT_0_2</td><td>for maintenance of log4cpp-stable (0.2.x)</td></tr>
</tbody></table><br>
</small>
<a href="#begin">^</a>
@@ -645,6 +645,7 @@ Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">Sou
<p>
WARNING: releases from the development branch are a 'work in progress' and may fail to build, crash or redecorate your desktop.
</p>
+ <p>Each release will receive a tag named REL_x_y_z or prefixed with REL_x.y.z</p>
<small>
<dl>
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 31e5cd5505fd33e4466fa1510f796ef27dd1d4f1
Author: Alexander Perepelkin <san...@us...>
Date: Fri Dec 12 20:45:16 2025 +0100
index.html, ChangeLog
diff --git a/ChangeLog b/ChangeLog
index ea85da3..6810876 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2025-12-12 20:18 sanchouss_
+ * Fix few compilation warnings
+ * Reformat source codebase automatically with clang-format-21
+ * Add .clang-format, BasedOnStyle: LLVM, with only minor tweaks to stay closer to the most of the current files
+ * Mirror git repository at github: https://github.com/log4cpp/log4cpp
+
2025-11-13 20:48 sanchouss_
* CMake script update; support for Embarcadero RAD Studio 12
diff --git a/doc/html/index.html b/doc/html/index.html
index c76f286..141c40a 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2025-12-01</span> |</div>
+2025-12-12</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -622,19 +622,19 @@ Log file A3.log is rolled over as soon as it reaches limit of 200 bytes, 1 backu
<p>
Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">SourceForge Git page</a> since version 1.1.1, CVS repo is stale now.
</p>
- Each release will receive a tag named REL_x_y_z.
- <p></p>
- <p>The project uses <a href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system.
+ <p>A mirror of the Git repository is also available on GitHub: <a
+ href="https://github.com/log4cpp/log4cpp">https://github.com/log4cpp/log4cpp</a></p>
+ <p>
To start working with a freshly checked out log4cpp repository, run <b><code>./autogen.sh</code></b>
first. This will create <code>./configure</code> and the necessary <code>Makefile.in</code>'s.
- You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4.
+ You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4 (<a href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system).
</p>
<p>Log4cpp of older versions (prior to version 1.1.1) is available also with CVS, see the <a href="https://sourceforge.net/p/log4cpp/code/">SourceForge CVS page</a> for instructions.</p>
<small>
CVS had two branches:
<table>
<tbody><tr><td>MAIN</td><td>for log4cpp development</td></tr>
- <tr><td>BRANCH_MAINT_0_2</td><td>for maintainance of log4cpp-stable (0.2.x)</td></tr>
+ <tr><td>BRANCH_MAINT_0_2</td><td>for maintenance of log4cpp-stable (0.2.x)</td></tr>
</tbody></table><br>
</small>
<a href="#begin">^</a>
@@ -645,6 +645,7 @@ Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">Sou
<p>
WARNING: releases from the development branch are a 'work in progress' and may fail to build, crash or redecorate your desktop.
</p>
+ <p>Each release will receive a tag named REL_x_y_z or prefixed with REL_x.y.z</p>
<small>
<dl>
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 31e5cd5505fd33e4466fa1510f796ef27dd1d4f1
Author: Alexander Perepelkin <san...@us...>
Date: Fri Dec 12 20:45:16 2025 +0100
index.html, ChangeLog
diff --git a/ChangeLog b/ChangeLog
index ea85da3..6810876 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2025-12-12 20:18 sanchouss_
+ * Fix few compilation warnings
+ * Reformat source codebase automatically with clang-format-21
+ * Add .clang-format, BasedOnStyle: LLVM, with only minor tweaks to stay closer to the most of the current files
+ * Mirror git repository at github: https://github.com/log4cpp/log4cpp
+
2025-11-13 20:48 sanchouss_
* CMake script update; support for Embarcadero RAD Studio 12
diff --git a/doc/html/index.html b/doc/html/index.html
index c76f286..141c40a 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2025-12-01</span> |</div>
+2025-12-12</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -622,19 +622,19 @@ Log file A3.log is rolled over as soon as it reaches limit of 200 bytes, 1 backu
<p>
Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">SourceForge Git page</a> since version 1.1.1, CVS repo is stale now.
</p>
- Each release will receive a tag named REL_x_y_z.
- <p></p>
- <p>The project uses <a href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system.
+ <p>A mirror of the Git repository is also available on GitHub: <a
+ href="https://github.com/log4cpp/log4cpp">https://github.com/log4cpp/log4cpp</a></p>
+ <p>
To start working with a freshly checked out log4cpp repository, run <b><code>./autogen.sh</code></b>
first. This will create <code>./configure</code> and the necessary <code>Makefile.in</code>'s.
- You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4.
+ You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4 (<a href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system).
</p>
<p>Log4cpp of older versions (prior to version 1.1.1) is available also with CVS, see the <a href="https://sourceforge.net/p/log4cpp/code/">SourceForge CVS page</a> for instructions.</p>
<small>
CVS had two branches:
<table>
<tbody><tr><td>MAIN</td><td>for log4cpp development</td></tr>
- <tr><td>BRANCH_MAINT_0_2</td><td>for maintainance of log4cpp-stable (0.2.x)</td></tr>
+ <tr><td>BRANCH_MAINT_0_2</td><td>for maintenance of log4cpp-stable (0.2.x)</td></tr>
</tbody></table><br>
</small>
<a href="#begin">^</a>
@@ -645,6 +645,7 @@ Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">Sou
<p>
WARNING: releases from the development branch are a 'work in progress' and may fail to build, crash or redecorate your desktop.
</p>
+ <p>Each release will receive a tag named REL_x_y_z or prefixed with REL_x.y.z</p>
<small>
<dl>
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 31e5cd5505fd33e4466fa1510f796ef27dd1d4f1
Author: Alexander Perepelkin <san...@us...>
Date: Fri Dec 12 20:45:16 2025 +0100
index.html, ChangeLog
diff --git a/ChangeLog b/ChangeLog
index ea85da3..6810876 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2025-12-12 20:18 sanchouss_
+ * Fix few compilation warnings
+ * Reformat source codebase automatically with clang-format-21
+ * Add .clang-format, BasedOnStyle: LLVM, with only minor tweaks to stay closer to the most of the current files
+ * Mirror git repository at github: https://github.com/log4cpp/log4cpp
+
2025-11-13 20:48 sanchouss_
* CMake script update; support for Embarcadero RAD Studio 12
diff --git a/doc/html/index.html b/doc/html/index.html
index c76f286..141c40a 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2025-12-01</span> |</div>
+2025-12-12</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -622,19 +622,19 @@ Log file A3.log is rolled over as soon as it reaches limit of 200 bytes, 1 backu
<p>
Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">SourceForge Git page</a> since version 1.1.1, CVS repo is stale now.
</p>
- Each release will receive a tag named REL_x_y_z.
- <p></p>
- <p>The project uses <a href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system.
+ <p>A mirror of the Git repository is also available on GitHub: <a
+ href="https://github.com/log4cpp/log4cpp">https://github.com/log4cpp/log4cpp</a></p>
+ <p>
To start working with a freshly checked out log4cpp repository, run <b><code>./autogen.sh</code></b>
first. This will create <code>./configure</code> and the necessary <code>Makefile.in</code>'s.
- You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4.
+ You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4 (<a href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system).
</p>
<p>Log4cpp of older versions (prior to version 1.1.1) is available also with CVS, see the <a href="https://sourceforge.net/p/log4cpp/code/">SourceForge CVS page</a> for instructions.</p>
<small>
CVS had two branches:
<table>
<tbody><tr><td>MAIN</td><td>for log4cpp development</td></tr>
- <tr><td>BRANCH_MAINT_0_2</td><td>for maintainance of log4cpp-stable (0.2.x)</td></tr>
+ <tr><td>BRANCH_MAINT_0_2</td><td>for maintenance of log4cpp-stable (0.2.x)</td></tr>
</tbody></table><br>
</small>
<a href="#begin">^</a>
@@ -645,6 +645,7 @@ Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">Sou
<p>
WARNING: releases from the development branch are a 'work in progress' and may fail to build, crash or redecorate your desktop.
</p>
+ <p>Each release will receive a tag named REL_x_y_z or prefixed with REL_x.y.z</p>
<small>
<dl>
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 31e5cd5505fd33e4466fa1510f796ef27dd1d4f1
Author: Alexander Perepelkin <san...@us...>
Date: Fri Dec 12 20:45:16 2025 +0100
index.html, ChangeLog
diff --git a/ChangeLog b/ChangeLog
index ea85da3..6810876 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2025-12-12 20:18 sanchouss_
+ * Fix few compilation warnings
+ * Reformat source codebase automatically with clang-format-21
+ * Add .clang-format, BasedOnStyle: LLVM, with only minor tweaks to stay closer to the most of the current files
+ * Mirror git repository at github: https://github.com/log4cpp/log4cpp
+
2025-11-13 20:48 sanchouss_
* CMake script update; support for Embarcadero RAD Studio 12
diff --git a/doc/html/index.html b/doc/html/index.html
index c76f286..141c40a 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2025-12-01</span> |</div>
+2025-12-12</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -622,19 +622,19 @@ Log file A3.log is rolled over as soon as it reaches limit of 200 bytes, 1 backu
<p>
Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">SourceForge Git page</a> since version 1.1.1, CVS repo is stale now.
</p>
- Each release will receive a tag named REL_x_y_z.
- <p></p>
- <p>The project uses <a href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system.
+ <p>A mirror of the Git repository is also available on GitHub: <a
+ href="https://github.com/log4cpp/log4cpp">https://github.com/log4cpp/log4cpp</a></p>
+ <p>
To start working with a freshly checked out log4cpp repository, run <b><code>./autogen.sh</code></b>
first. This will create <code>./configure</code> and the necessary <code>Makefile.in</code>'s.
- You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4.
+ You'll need at least autoconf 2.50, automake 1.6.0 and libtool 1.4 (<a href="https://www.gnu.org/software/automake/">GNU Autotools</a> build system).
</p>
<p>Log4cpp of older versions (prior to version 1.1.1) is available also with CVS, see the <a href="https://sourceforge.net/p/log4cpp/code/">SourceForge CVS page</a> for instructions.</p>
<small>
CVS had two branches:
<table>
<tbody><tr><td>MAIN</td><td>for log4cpp development</td></tr>
- <tr><td>BRANCH_MAINT_0_2</td><td>for maintainance of log4cpp-stable (0.2.x)</td></tr>
+ <tr><td>BRANCH_MAINT_0_2</td><td>for maintenance of log4cpp-stable (0.2.x)</td></tr>
</tbody></table><br>
</small>
<a href="#begin">^</a>
@@ -645,6 +645,7 @@ Log4cpp is moved to git <a href="https://sourceforge.net/p/log4cpp/codegit/">Sou
<p>
WARNING: releases from the development branch are a 'work in progress' and may fail to build, crash or redecorate your desktop.
</p>
+ <p>Each release will receive a tag named REL_x_y_z or prefixed with REL_x.y.z</p>
<small>
<dl>
-----------------------------------------------------------------------
Summary of changes:
.clang-format | 247 ++++++++++++
ChangeLog | 6 +
doc/html/index.html | 22 +-
include/log4cpp/AbortAppender.hh | 13 +-
include/log4cpp/Appender.hh | 114 +++---
include/log4cpp/AppenderSkeleton.hh | 33 +-
include/log4cpp/AppendersFactory.hh | 39 +-
include/log4cpp/BasicConfigurator.hh | 9 +-
include/log4cpp/BasicLayout.hh | 10 +-
include/log4cpp/BufferingAppender.hh | 52 +--
include/log4cpp/Category.hh | 289 +++++++-------
include/log4cpp/CategoryStream.hh | 59 ++-
include/log4cpp/Configurator.hh | 8 +-
include/log4cpp/DailyRollingFileAppender.hh | 26 +-
include/log4cpp/Export.hh | 29 +-
include/log4cpp/FactoryParams.hh | 218 +++++-----
include/log4cpp/FileAppender.hh | 28 +-
include/log4cpp/Filter.hh | 43 +-
include/log4cpp/FixedContextCategory.hh | 64 ++-
include/log4cpp/HierarchyMaintainer.hh | 20 +-
include/log4cpp/IdsaAppender.hh | 24 +-
include/log4cpp/Layout.hh | 16 +-
include/log4cpp/LayoutAppender.hh | 20 +-
include/log4cpp/LayoutsFactory.hh | 39 +-
include/log4cpp/LevelEvaluator.hh | 20 +-
include/log4cpp/LoggingEvent.hh | 18 +-
include/log4cpp/Manipulator.hh | 32 +-
include/log4cpp/NDC.hh | 69 ++--
include/log4cpp/NTEventLogAppender.hh | 63 ++-
include/log4cpp/OstreamAppender.hh | 12 +-
include/log4cpp/PassThroughLayout.hh | 14 +-
include/log4cpp/PatternLayout.hh | 31 +-
include/log4cpp/Portability.hh | 62 +--
include/log4cpp/Priority.hh | 66 ++--
include/log4cpp/PropertyConfigurator.hh | 16 +-
include/log4cpp/RemoteSyslogAppender.hh | 102 +++--
include/log4cpp/RollingFileAppender.hh | 23 +-
include/log4cpp/SimpleConfigurator.hh | 17 +-
include/log4cpp/SimpleLayout.hh | 12 +-
include/log4cpp/SmtpAppender.hh | 28 +-
include/log4cpp/StringQueueAppender.hh | 16 +-
include/log4cpp/SyslogAppender.hh | 23 +-
include/log4cpp/TimeStamp.hh | 11 +-
include/log4cpp/TriggeringEventEvaluator.hh | 14 +-
include/log4cpp/TriggeringEventEvaluatorFactory.hh | 38 +-
include/log4cpp/Win32DebugAppender.hh | 58 +--
include/log4cpp/threading/BoostThreads.hh | 24 +-
include/log4cpp/threading/DummyThreads.hh | 28 +-
include/log4cpp/threading/MSThreads.hh | 99 ++---
include/log4cpp/threading/OmniThreads.hh | 68 ++--
include/log4cpp/threading/PThreads.hh | 68 ++--
src/AbortAppender.cpp | 21 +-
src/Appender.cpp | 116 +++---
src/AppenderSkeleton.cpp | 22 +-
src/AppendersFactory.cpp | 103 +++--
src/BasicConfigurator.cpp | 9 +-
src/BasicLayout.cpp | 22 +-
src/BufferingAppender.cpp | 81 ++--
src/Category.cpp | 149 +++----
src/CategoryStream.cpp | 97 ++---
src/Configurator.cpp | 10 +-
src/DailyRollingFileAppender.cpp | 286 +++++++-------
src/DllMain.cpp | 21 +-
src/DummyThreads.cpp | 4 +-
src/FactoryParams.cpp | 26 +-
src/FileAppender.cpp | 61 ++-
src/Filter.cpp | 14 +-
src/FixedContextCategory.cpp | 37 +-
src/HierarchyMaintainer.cpp | 51 ++-
src/IdsaAppender.cpp | 62 ++-
... 59 lines suppressed ...
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2025-12-01 19:36:23
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The annotated tag, REL_1.1.5_Dec_01_2025 has been created
at c3b45ac5c34ccd6c607103e95b254edf3141df4a (tag)
tagging d9da5fca956a4e0b532fcca295d1903604d5f47d (commit)
replaces REL_1.1.5rc1_Aug_23_2024
tagged by Alexander Perepelkin
on Mon Dec 1 20:21:32 2025 +0100
- Log -----------------------------------------------------------------
log4cpp-1.1.5, 01 Dec 2025
Alexander Perepelkin (20):
index.html
index.html
Discussion 48226 further fix for clean cmake builds on x86 Ubuntu etc.
Update .gitignore
autoupdate
autoreconf -fi -I m4
ChangeLog
Fix spellings caught by Debian Patches
Fix warnings given by gcc version 13.3.0
ChangeLog
index.html
index.html
Stop executing ./autogen.sh if any error happens
Bump autoconf requirement to 2.59 only; have some fallbacks for modern macros; address bug #158;
Cmake script update: support release and debug build types (defaults to release); build both static and shared libraries; pass necessary cpp macros for debug
Changelog, index.html
DailyRollingFileAppender copyright
index.html, AUTHORS
Cmake fixes, add RAD Studio 12 support
index.html
-----------------------------------------------------------------------
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2025-12-01 19:36:21
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The annotated tag, REL_1.1.3_Jul_13_2017 has been created
at 2c2db5baabfb054e84349078134e9eaf5d4d7cd9 (tag)
tagging 2e117d81e94ec4f9c5af42fcf76a0583a036e106 (commit)
replaces REL_1.1.2_Apr_18_2017
tagged by Alexander Perepelkin
on Mon Dec 1 20:26:56 2025 +0100
- Log -----------------------------------------------------------------
log4cpp-1.1.3, 13 Jul 2017
Alexander Perepelkin (3):
fix for bug 146 by Ryan Schmidt
fix for bug 147 - Being prepared for Removing Deprecated Exception Specifications from C++17
ChangeLog
-----------------------------------------------------------------------
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2025-12-01 19:36:19
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The annotated tag, REL_1.1.2_Apr_18_2017 has been created
at ba40b9992f27c7133ce6d07fa78ceb7cde0a692a (tag)
tagging cad9150f1a0ec81931582e9dc3cf28e0da9f5834 (commit)
replaces REL_1.0_Sep_03_2007
tagged by Alexander Perepelkin
on Mon Dec 1 20:29:55 2025 +0100
- Log -----------------------------------------------------------------
log4cpp-1.1.2, 18 Apr 2017
Alexander Perepelkin (47):
little doc syntax fix
Fix for bug 2940452
Fix for bug 3109495
Fix for bug#3198140
testcase for fix of bug#2826590, Bug in StringUtil.cpp
Fix for thread id unsigned #1252614
Number history files in RollingFileAppender so that they can be lexicographically ordered by name properly
small optimization to avoid invokation of thread-specific routines each time when a string is constructed from a log event
MSVC 2010 support. Project files converted for msvc10 and adjusted.
Fix for test of logging into windows events.
remove historical .vcproj files
Fix for test of logging into windows events.
new index html
thanks upd )
fix for bug#1579890
Fixes for BCB5 project
Main html file edit: note about rel. 1.1.1
fix for bug#137, for strings longer than 256 chars, and test for this case
Bug #136 - CRLF for *.dsp
Copyright notes, .gitignore
copyright notes for src/
Add multithreading answer, formatting options
Add remote-syslog and smtp configure features (enabled by default). Add SmtpAppender to the automake sources. (by Eric Simard)
options to disable syslog and smtp appenders are documented
adding DailyRollingFileAppender to build
DailyRollingFileAppender and tests for it: Linux, msvc2010
DailyRollingFileAppender: add empty nested dirs
update start page
Merge branch 'master' of ssh://git.code.sf.net/p/log4cpp/codegit
Add configuration targets into tests for ConsoleAppender
mem leak solution for all appenders
config fixes; rem commented line
Merge branch 'bug-139-mem-leaks-alltogether' of ssh://git.code.sf.net/p/log4cpp/codegit
bug-140: removed std::cout when file rollover
bug-142: conservative fix
bug-141: conservative fix
Fix for reported patch-45, plus tests and minors
src/PThreads.cpp
small rename
LOG4CPP_EXPORT
fix for bugs-143
Add missing config.h/Portability.hh include
bug-145: fix daily rolling; add manual test to see rolling
daily test support for windows
test daily rolling: disable test which changes dates
ChangeLog
doc update
Andrew Brown (1):
PropertyConfiguratorImpl: add target property to allow printing to STDERR
Francis ANDRE (3):
Initial revision.
Initial revision.
Missing LocalTime.hh & LocalTime.cpp
Thomas Wabner (6):
[intern] changes by Tan Meng YUE to have the cmake stuff available
[feature] cmake file from Tan Meng YUE to compile the library on various platforms with cmake
[bug] fixed 2789510 -- CFlags in log4cpp.pc incorrect -- removed extra flags from CFLAGS and CXXFLAGS
[bug] fixed 2830158 -- MinGW: 'std::ostringstream' has a previous declaration -- added missed config-MinGW32.h to list of makefiles
[intern] changed version information to next iteration; next version will be 1.1; LT_VERSION changed from 5:5:0 to 5:6:0
[bug] fixed 2736791 -- compiler problem with MSVC-8(2005) -- applied patch from bug entry
darkangel (12):
msvc 6.5 support
Fix incomplite type usage
Fixed LT_VERSION to reflect ABI breakage
Added simple test for RollingFileAppender. Rewrite rollOver function to get rid of macroses and posible bug on HP-UX 11
Added missed files
Added missing files
Added support for mingw+boost+stlport build variant
made CodeBlocks + gcc 3.4.5 + boost threads + STLPort works
fix for gcc 4.3.0 build. Patches ID: 2057453
make tow different log4cpp property files one for nt, second for others
added va_copy to prevent posible crash on some systems. Patches ID: 2083274
MSVC and Borland doesn't have va_copy - fallback to simple assigning
sanchouss_ (1):
First git commit
-----------------------------------------------------------------------
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2025-11-17 13:05:31
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via 7e80abbe6d4c6cefd674fc2952bf1e599478bf10 (commit)
from d9da5fca956a4e0b532fcca295d1903604d5f47d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit 7e80abbe6d4c6cefd674fc2952bf1e599478bf10
Author: Alexander Perepelkin <san...@us...>
Date: Mon Nov 17 14:05:14 2025 +0100
index.html, styles.css
diff --git a/doc/html/index.html b/doc/html/index.html
index d5ae3ec..f76406e 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2025-11-15</span> |</div>
+2025-11-17</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -262,23 +262,31 @@ cmake -S . -B build_debug -DCMAKE_BUILD_TYPE=Debug<br>
cmake --build build_debug
</pre>
<h3><a id="buildwindowscmake">Windows, CMake</a></h3>
+ <h4>MS Visual Studio 2022</h4>
+ <blockquote>
<p><b>MS Visual Studio 2022</b> can open <code>log4cpp</code> directly as a CMake project.
Use <code>File → Open → CMake...</code> menu items to choose <code>log4cpp/CMakeLists.txt</code> file and start CMake generation.
After generation is finished, choose <code>Build → Build All</code> to build <code>log4cpp</code> libs.
<br>Note: Make sure not to use project files intended for older MSVC versions (<code>msvc10, msvc7, msvc6</code>).
If such files are used, you may encounter build error like: (<code>Platform Toolset = 'v100') cannot be found</code>.
</p>
- <p><b>Embarcadero RAD Studio 12</b> can build <code>log4cpp</code> project using its bundled version of CMake, provided via the RAD Package Manager.
- Make sure that Embarcadero's CMake (and not another installation) is used.
+ </blockquote>
+ <h4>Embarcadero RAD Studio 12</h4>
+ <blockquote>
+ <p><b>Embarcadero RAD Studio 12</b> can build <code>log4cpp</code> project using its bundled version of CMake, provided via the RAD Package Manager.<br>
+ Make sure that Embarcadero's CMake (and not another installation) is used for command line.
+ Ninja generator will be used as build system, you can get <code>ninja-win.zip</code> at
+ <a href="https://ninja-build.org/">Ninja site</a> and extract the executable into catalog included into PATH environment variable.<br>
Open <b>RAD Studio Command Prompt</b> and run commands to build <code>log4cpp</code> libs:</p>
<p>Release:</p>
<pre class="code">
cmake.exe -G Ninja -S . -B build_release -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_CROSSCOMPILING=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_ASM_COMPILER=bcc64x -DCMAKE_C_COMPILER=bcc64x -DCMAKE_CXX_COMPILER=bcc64x<br>
-cmake --build build_release --config Release -v </pre>
+cmake.exe --build build_release --config Release -v </pre>
<p>Debug:</p>
<pre class="code">
cmake.exe -G Ninja -S . -B build_debug -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_CROSSCOMPILING=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ASM_COMPILER=bcc64x -DCMAKE_C_COMPILER=bcc64x -DCMAKE_CXX_COMPILER=bcc64x<br>
-cmake --build build_debug --config Debug -v </pre>
+cmake.exe --build build_debug --config Debug -v </pre>
+ </blockquote>
<p><i>Works since log4cpp 1.1.5. </i></p>
<a href="#begin">^</a>
diff --git a/doc/html/styles.css b/doc/html/styles.css
new file mode 100644
index 0000000..dbe12be
--- /dev/null
+++ b/doc/html/styles.css
@@ -0,0 +1,93 @@
+#headerdiv {
+ background-color: rgb(240, 240, 240);
+ text-align: center;
+ margin: 10px;
+}
+
+.briefline {
+ font-size: x-small;
+ background-color: rgb(220, 220, 220);
+ padding: 5px 10px;
+ border-style: dotted;
+ border-width: 1px;
+ border-color: rgb(190, 190, 190);
+ margin: 10px;
+}
+
+.delimiter {
+ clear: both;
+ display: none;
+ visibility: hidden;
+}
+
+body {
+ margin: 0px;
+ padding: 0px;
+ font-family: Verdana, Helvetica, Arial, sans-serif;
+ font-size: 13px;
+}
+
+DT {
+ font-weight: bold;
+}
+
+#projectpage {
+ margin: 0px;
+ padding: 0px;
+}
+
+.lightbackground {
+ background-color: rgb(240, 240, 240);
+}
+
+#navigationpanel h5 {
+ color: black;
+ border-bottom: 1px solid rgb(190, 190, 190);
+ margin: 1px;
+ padding: 1px;
+ font-size: small;
+}
+
+#navigationpanel {
+ padding: 5px;
+ margin: 10px;
+ width: 180px;
+ float: left;
+ border: 1px solid rgb(150, 150, 150);
+}
+
+#navigationpanel ul {
+ margin: 1px;
+ padding: 1px;
+ font-size: small;
+}
+
+#navigationpanel li {
+ list-style-type: none;
+ padding-left: 15px;
+ font-size: smaller;
+}
+
+.chapter {
+ padding: 4px;
+ margin: 0px;
+}
+
+.chapter h2 {
+ color: darkblue;
+ background-color: rgb(240, 240, 240);
+ border-bottom: 1px solid rgb(190, 190, 190);
+}
+
+#contentpanel {
+ margin-right: 20px;
+ margin-left: 220px;
+}
+
+.code {
+ padding: 12px;
+ margin: 10px;
+ background-color: rgb(240, 240, 240);
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
\ No newline at end of file
-----------------------------------------------------------------------
Summary of changes:
doc/html/index.html | 18 ++++++++---
doc/html/styles.css | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 106 insertions(+), 5 deletions(-)
create mode 100644 doc/html/styles.css
hooks/post-receive
--
Log4cpp Git repository.
|
|
From: <log...@li...> - 2025-11-15 19:44:27
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Log4cpp Git repository.".
The branch, master has been updated
via d9da5fca956a4e0b532fcca295d1903604d5f47d (commit)
from f77a7b1978c13abc693a3e7e1b376c592abdb259 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/log4cpp/codegit/ci/
commit d9da5fca956a4e0b532fcca295d1903604d5f47d
Author: Alexander Perepelkin <san...@us...>
Date: Sat Nov 15 20:43:57 2025 +0100
index.html
diff --git a/doc/html/index.html b/doc/html/index.html
index 4334a6f..d5ae3ec 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -15,7 +15,7 @@ for C++ Project
Page on Sourceforge</a>
</span> |
<span>Last Published:
-2025-11-08</span> |</div>
+2025-11-15</span> |</div>
<hr class="delimiter">
<div id="projectpage">
<div id="navigationpanel" class="lightbackground">
@@ -640,9 +640,10 @@ WARNING: releases from the development branch are a 'work in progress' and may f
<small>
<dl>
-<dt>1.1.5rc3 - master branch (08 November 2025)</dt>
+<dt>1.1.5rc4 - master branch (13 November 2025)</dt>
<dd>Cmake script update: support release and debug build types (defaults to release); build both static and shared libraries; pass necessary cpp macros for debug</dd>
<dd>MS Visual Studio 2022 can open log4cpp as CMake Project</dd>
+<dd>Support for Embarcadero RAD Studio 12 in CMake script</dd>
<dd>Address bug #158; Add path to m4 macros for autoreconf in GNU Autotools scripts</dd>
<dd>Discussion 48226 by Andrew E Page. Alter CMakeLists to allow installation paths for x86 and arm64 be different so that cross-compilation on single host is possible.</dd>
<dd>Update scripts for GNU Autotools shipped with the log4cpp distribution to their fresh versions</dd>
-----------------------------------------------------------------------
Summary of changes:
doc/html/index.html | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
hooks/post-receive
--
Log4cpp Git repository.
|