(logging-log4cxx) branch simplify_readme updated (aa6394b4 -> bda16b5a)
This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a change to branch simplify_readme in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git from aa6394b4 Revert "Simplify badges" add bda16b5a Add more badges No new revisions were added by this update. Summary of changes: README.md | 3 +++ 1 file changed, 3 insertions(+)
(logging-log4cxx) branch simplify_readme updated (18661be4 -> aa6394b4)
This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a change to branch simplify_readme in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git from 18661be4 Simplify badges add aa6394b4 Revert "Simplify badges" No new revisions were added by this update. Summary of changes: README.md | 8 1 file changed, 4 insertions(+), 4 deletions(-)
(logging-log4cxx) branch simplify_readme updated (8fa61436 -> 18661be4)
This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a change to branch simplify_readme in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git from 8fa61436 Add some badges add 18661be4 Simplify badges No new revisions were added by this update. Summary of changes: README.md | 8 1 file changed, 4 insertions(+), 4 deletions(-)
(logging-log4cxx) branch simplify_readme updated (1ba02766 -> 8fa61436)
This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a change to branch simplify_readme in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git from 1ba02766 Add some badges add 8fa61436 Add some badges No new revisions were added by this update. Summary of changes: README.md | 1 - 1 file changed, 1 deletion(-)
(logging-log4cxx) branch simplify_readme updated (eadb134b -> 1ba02766)
This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a change to branch simplify_readme in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git from eadb134b Add some badges add 1ba02766 Add some badges No new revisions were added by this update. Summary of changes: README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
(logging-log4cxx) branch simplify_readme updated (2f267c4c -> eadb134b)
This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a change to branch simplify_readme in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git from 2f267c4c Add a direct link to download instructions add eadb134b Add some badges No new revisions were added by this update. Summary of changes: README.md | 6 ++ 1 file changed, 6 insertions(+)
(logging-log4cxx) branch async_discard_count created (now 04338932)
This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a change to branch async_discard_count in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git at 04338932 Include the number of events AsyncAppender discarded in debug output This branch includes the following new commits: new 04338932 Include the number of events AsyncAppender discarded in debug output The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
(logging-log4cxx) 01/01: Include the number of events AsyncAppender discarded in debug output
This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a commit to branch async_discard_count in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git commit 04338932a1e54e1b5bfda26c18ff1ce2a6a51466 Author: Stephen Webb AuthorDate: Wed May 1 10:47:32 2024 +1000 Include the number of events AsyncAppender discarded in debug output --- src/main/cpp/asyncappender.cpp | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/cpp/asyncappender.cpp b/src/main/cpp/asyncappender.cpp index 7cc0f9f5..95f5ece2 100644 --- a/src/main/cpp/asyncappender.cpp +++ b/src/main/cpp/asyncappender.cpp @@ -91,6 +91,11 @@ class DiscardSummary ::LOG4CXX_NS::spi::LoggingEventPtr createEvent(::LOG4CXX_NS::helpers::Pool& p, size_t discardedCount); #endif + + /** + * The number of messages discarded. + */ + int getCount() const { return count; } }; typedef std::map DiscardMap; @@ -499,6 +504,7 @@ DiscardSummary::createEvent(::LOG4CXX_NS::helpers::Pool& p, void AsyncAppender::dispatch() { + size_t discardCount = 0; std::vector pendingCountHistogram(priv->bufferSize, 0); bool isActive = true; @@ -533,6 +539,7 @@ void AsyncAppender::dispatch() for (auto discardItem : priv->discardMap) { events.push_back(discardItem.second.createEvent(p)); + discardCount += discardItem.second.getCount(); } priv->discardMap.clear(); } @@ -562,7 +569,10 @@ void AsyncAppender::dispatch() } if (!isActive) { - LogString msg(LOG4CXX_STR("AsyncAppender pendingCountHistogram")); + LogString msg(LOG4CXX_STR("AsyncAppender")); + msg += LOG4CXX_STR(" discardCount "); + StringHelper::toString(discardCount, p, msg); + msg += LOG4CXX_STR(" pendingCountHistogram"); for (auto item : pendingCountHistogram) { msg += logchar(' ');
(logging-log4cxx) branch remove_extra_initialize_calls deleted (was 2b651dc4)
This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a change to branch remove_extra_initialize_calls in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git was 2b651dc4 Add getStartTime() now and remove initialize() on ABI bump The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(logging-log4cxx) branch master updated: Improve APRInitiializer interface in next ABI version (#378)
This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git The following commit(s) were added to refs/heads/master by this push: new 4f605de7 Improve APRInitiializer interface in next ABI version (#378) 4f605de7 is described below commit 4f605de7024cb237dda8d27d92e6ed4c1eaa4d47 Author: Stephen Webb AuthorDate: Wed May 1 10:37:12 2024 +1000 Improve APRInitiializer interface in next ABI version (#378) --- src/main/cpp/aprinitializer.cpp | 9 - src/main/cpp/level.cpp| 1 - src/main/cpp/loggingevent.cpp | 2 +- src/main/include/log4cxx/helpers/aprinitializer.h | 3 +++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/cpp/aprinitializer.cpp b/src/main/cpp/aprinitializer.cpp index f44e9864..454b7718 100644 --- a/src/main/cpp/aprinitializer.cpp +++ b/src/main/cpp/aprinitializer.cpp @@ -129,10 +129,17 @@ APRInitializer& APRInitializer::getInstance() } +#if LOG4CXX_ABI_VERSION <= 15 log4cxx_time_t APRInitializer::initialize() { return getInstance().m_priv->startTime; } +#endif + +log4cxx_time_t APRInitializer::getStartTime() +{ + return getInstance().m_priv->startTime; +} apr_pool_t* APRInitializer::getRootPool() { @@ -173,7 +180,7 @@ const ObjectPtr& APRInitializer::findOrAddObject(size_t key, std::functionobjects.empty()) { // Ensure the internal logger has a longer life than other Log4cxx static data - LogLog::debug(LOG4CXX_STR("Log4cxx starting")); + LogLog::debug(LOG4CXX_STR("Started")); } auto pItem = m_priv->objects.find(key); if (m_priv->objects.end() == pItem) diff --git a/src/main/cpp/level.cpp b/src/main/cpp/level.cpp index 7e2e4dad..50fcfd12 100644 --- a/src/main/cpp/level.cpp +++ b/src/main/cpp/level.cpp @@ -85,7 +85,6 @@ Level::Level(int level1, const LogString& name1, int syslogEquivalent1) : level(level1), name(name1), syslogEquivalent(syslogEquivalent1) { - APRInitializer::initialize(); } diff --git a/src/main/cpp/loggingevent.cpp b/src/main/cpp/loggingevent.cpp index f6eceddb..2c67447a 100644 --- a/src/main/cpp/loggingevent.cpp +++ b/src/main/cpp/loggingevent.cpp @@ -173,7 +173,7 @@ IMPLEMENT_LOG4CXX_OBJECT(LoggingEvent) // log4cxx_time_t LoggingEvent::getStartTime() { - return LOG4CXX_NS::helpers::APRInitializer::initialize(); + return APRInitializer::getStartTime(); } LoggingEvent::LoggingEvent() : diff --git a/src/main/include/log4cxx/helpers/aprinitializer.h b/src/main/include/log4cxx/helpers/aprinitializer.h index ea5945a3..f810127a 100644 --- a/src/main/include/log4cxx/helpers/aprinitializer.h +++ b/src/main/include/log4cxx/helpers/aprinitializer.h @@ -44,8 +44,11 @@ class FileWatchdog; class APRInitializer { public: +#if LOG4CXX_ABI_VERSION <= 15 static log4cxx_time_t initialize(); +#endif static apr_pool_t* getRootPool(); + static log4cxx_time_t getStartTime(); static apr_threadkey_t* getTlsKey(); static bool isDestructed;
(logging-log4cxx) branch simplify_readme updated (543578b4 -> 2f267c4c)
This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a change to branch simplify_readme in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git from 543578b4 Make it a bit less bare bones add 2f267c4c Add a direct link to download instructions No new revisions were added by this update. Summary of changes: README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
(logging-site) branch activity-monitor updated: Update project activity data
This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch activity-monitor in repository https://gitbox.apache.org/repos/asf/logging-site.git The following commit(s) were added to refs/heads/activity-monitor by this push: new 1d78c034 Update project activity data 1d78c034 is described below commit 1d78c03407ec8776e628715803193e7643d192c3 Author: ASF Logging Services RM AuthorDate: Wed May 1 00:23:45 2024 + Update project activity data --- stats-instant.txt | 2 +- stats.csv | 20 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/stats-instant.txt b/stats-instant.txt index c699da62..ebbcce95 100644 --- a/stats-instant.txt +++ b/stats-instant.txt @@ -1 +1 @@ -2024-04-29T00:22:17Z \ No newline at end of file +2024-05-01T00:23:45Z \ No newline at end of file diff --git a/stats.csv b/stats.csv index 4e391814..4096239b 100644 --- a/stats.csv +++ b/stats.csv @@ -357,6 +357,7 @@ log4j-kotlin,log4j-api-kotlin,2017-11-23,rocketra...@gmail.com log4j-kotlin,log4j-api-kotlin,2016-12-08,rocketra...@gmail.com log4j-kotlin,log4j-api-kotlin,2016-11-14,rocketra...@gmail.com log4j-kotlin,log4j-api-kotlin,2016-11-14,rocketra...@gmail.com +log4j-tools,log4j-tools-bom,2024-04-29,priv...@logging.apache.org log4j-tools,log4j-tools-bom,2024-04-22,vol...@yazi.ci log4j-tools,log4j-tools-bom,2024-04-22,vol...@yazi.ci log4j-tools,log4j-tools-bom,2024-04-19,vol...@yazi.ci @@ -932,6 +933,7 @@ log4j-tools,log4j-docgen-asciidoctor-extension,2024-03-15,vol...@yazi.ci log4j-tools,log4j-docgen-asciidoctor-extension,2024-03-15,vol...@yazi.ci log4j-tools,log4j-docgen-asciidoctor-extension,2024-03-15,vol...@yazi.ci log4j-tools,log4j-docgen-asciidoctor-extension,2024-03-13,vol...@yazi.ci +log4j-tools,log4j-tools-parent,2024-04-29,priv...@logging.apache.org log4j-tools,log4j-tools-parent,2024-04-09,priv...@logging.apache.org log4j-tools,log4j-tools-parent,2024-04-04,priv...@logging.apache.org log4j-tools,log4j-tools-parent,2024-03-29,priv...@logging.apache.org @@ -1832,6 +1834,14 @@ log4j-2,log4j-iostreams,2014-09-03,garydgreg...@gmail.com log4j-2,log4j-iostreams,2014-09-03,garydgreg...@gmail.com log4j-2,log4j-iostreams,2014-09-03,mattsic...@apache.org log4j-2,log4j-iostreams,2014-09-03,mattsic...@apache.org +log4j-2,log4j-bom,2024-04-30,vol...@yazi.ci +log4j-2,log4j-bom,2024-04-30,vol...@yazi.ci +log4j-2,log4j-bom,2024-04-29,priv...@logging.apache.org +log4j-2,log4j-bom,2024-04-29,priv...@logging.apache.org +log4j-2,log4j-bom,2024-04-29,priv...@logging.apache.org +log4j-2,log4j-bom,2024-04-29,piotr.git...@karwasz.org +log4j-2,log4j-bom,2024-04-29,vol...@yazi.ci +log4j-2,log4j-bom,2024-04-29,vol...@yazi.ci log4j-2,log4j-bom,2024-04-27,piotr.git...@karwasz.org log4j-2,log4j-bom,2024-04-26,piotr.git...@karwasz.org log4j-2,log4j-bom,2024-04-18,piotr.git...@karwasz.org @@ -16505,6 +16515,7 @@ log4j-2,log4j-jcl,2013-12-05,ggreg...@apache.org log4j-2,log4j-jcl,2013-09-14,rgo...@apache.org log4j-2,log4j-jcl,2013-09-14,rgo...@apache.org log4j-2,log4j-jcl,2013-08-26,ggreg...@apache.org +log4j-2,log4j-core-test,2024-04-29,vol...@yazi.ci log4j-2,log4j-core-test,2024-04-26,piotr.git...@karwasz.org log4j-2,log4j-core-test,2024-04-17,piotr.git...@karwasz.org log4j-2,log4j-core-test,2024-04-26,piotr.git...@karwasz.org @@ -17833,6 +17844,9 @@ log4j-2,log4j-layout-template-json,2020-11-06,volkan.yaz...@gmail.com log4j-2,log4j-layout-template-json,2020-11-03,rgo...@apache.org log4j-2,log4j-layout-template-json,2020-08-25,volkan.yaz...@gmail.com log4j-2,log4j-layout-template-json,2020-08-25,volkan.yaz...@gmail.com +log4j-2,log4j,2024-04-29,priv...@logging.apache.org +log4j-2,log4j,2024-04-29,priv...@logging.apache.org +log4j-2,log4j,2024-04-29,priv...@logging.apache.org log4j-2,log4j,2024-04-18,priv...@logging.apache.org log4j-2,log4j,2024-04-18,priv...@logging.apache.org log4j-2,log4j,2024-04-18,priv...@logging.apache.org @@ -17983,6 +17997,8 @@ log4j-2,log4j,2023-10-11,vol...@yazi.ci log4j-2,log4j,2023-10-11,vol...@yazi.ci log4j-2,log4j,2023-10-06,vol...@yazi.ci log4j-2,log4j,2023-10-05,vol...@yazi.ci +log4j-2,log4j-core,2024-04-29,vol...@yazi.ci +log4j-2,log4j-core,2024-04-29,vol...@yazi.ci log4j-2,log4j-core,2024-04-26,piotr.git...@karwasz.org log4j-2,log4j-core,2024-04-17,piotr.git...@karwasz.org log4j-2,log4j-core,2024-04-26,piotr.git...@karwasz.org @@ -25782,6 +25798,7 @@ log4j-2,log4j-jpa,2018-01-28,rpo...@apache.org log4j-2,log4j-jpa,2018-01-26,rpo...@apache.org log4j-2,log4j-jpa,2018-01-14,rpo...@apache.org log4j-2,log4j-jpa,2018-01-27,garydgreg...@gmail.com +log4j-2,log4j-api,2024-04-29,vol...@yazi.ci log4j-2,log4j-api,2024-04-26,piotr.git...@karwasz.org log4j-2,log4j-api,2024-04-26,vol...@yazi.ci log4j-2,log4j-api,2024-04-26,vol...@yazi.ci @@ -27881,6 +27898,9 @@ log4j-jmx-gui,log4j-jmx-gui,2014-02-02,rpopma@unknown log4j-jmx-gui,log4j-jmx-gui,2013-09-14,rgo...@apache.org
(logging-log4cxx) branch simplify_readme updated (71045b11 -> 543578b4)
This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a change to branch simplify_readme in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git from 71045b11 Add Apache preamble as a comment add 543578b4 Make it a bit less bare bones No new revisions were added by this update. Summary of changes: README.md | 13 - 1 file changed, 12 insertions(+), 1 deletion(-)
(logging-log4j2) branch main-site-stg-out updated: Add `.asf.yaml` along with an INFRA fix for the website content generated from `5d357cdcc461eae076274b9baa770281648bb505`
This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch main-site-stg-out in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git The following commit(s) were added to refs/heads/main-site-stg-out by this push: new e408a36583 Add `.asf.yaml` along with an INFRA fix for the website content generated from `5d357cdcc461eae076274b9baa770281648bb505` e408a36583 is described below commit e408a36583d180ec0bbc8cfec05192d6f9a77f2f Author: ASF Logging Services RM AuthorDate: Tue Apr 30 18:58:22 2024 + Add `.asf.yaml` along with an INFRA fix for the website content generated from `5d357cdcc461eae076274b9baa770281648bb505` --- .asf.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.asf.yaml b/.asf.yaml index 975483926c..e28a1e938c 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -9,6 +9,6 @@ staging: # # Random values to cause a change: # -# - Seed: 15643 -# - Commit ID: f683f6adfbfccda6c295902ae89133a610ecee85 -# - Timestamp: 2024-04-30T13:36:28Z +# - Seed: 31147 +# - Commit ID: 5d357cdcc461eae076274b9baa770281648bb505 +# - Timestamp: 2024-04-30T18:58:22Z
(logging-log4j2) branch main-site-stg-out updated: Add website content generated from `5d357cdcc461eae076274b9baa770281648bb505`
This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch main-site-stg-out in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git The following commit(s) were added to refs/heads/main-site-stg-out by this push: new 1309c7f69c Add website content generated from `5d357cdcc461eae076274b9baa770281648bb505` 1309c7f69c is described below commit 1309c7f69c782796d9fbf42af0cbb5dccd0b7372 Author: ASF Logging Services RM AuthorDate: Tue Apr 30 18:58:21 2024 + Add website content generated from `5d357cdcc461eae076274b9baa770281648bb505` --- articles.html | 3 + log4j-slf4j-impl.html => development.html | 181 ++- download.html | 3 + faq.html | 3 + getting-started/index.html| 3 + guidelines.html | 788 -- index.html| 3 + javadoc.html | 3 + log4j-1.2-api.html| 3 + log4j-api.html| 3 + log4j-docker.html | 3 + log4j-flume-ng.html | 3 + log4j-iostreams.html | 3 + log4j-jpl.html| 3 + log4j-jul.html| 3 + log4j-mongodb4.html | 3 + log4j-slf4j-impl.html | 3 + log4j-slf4j2-impl.html| 3 + log4j-spring-cloud-config-client.html | 3 + log4j-to-jul.html | 3 + log4j-to-slf4j.html | 3 + manual/api-separation.html| 3 + manual/api.html | 3 + manual/appenders.html | 3 + manual/architecture.html | 3 + manual/async.html | 3 + manual/cloud.html | 3 + manual/compatibility.html | 3 + manual/configuration.html | 3 + manual/customconfig.html | 3 + manual/customloglevels.html | 3 + manual/dependencyinjection.html | 3 + manual/eventlogging.html | 3 + manual/extending.html | 3 + manual/filters.html | 3 + manual/flowtracing.html | 3 + manual/garbagefree.html | 3 + manual/index.html | 3 + manual/installation.html | 3 + manual/jmx.html | 3 + manual/json-template-layout.html | 3 + manual/layouts.html | 3 + manual/log4j1-compat.html | 3 + manual/logbuilder.html| 3 + manual/logsep.html| 3 + manual/lookups.html | 3 + manual/markers.html | 3 + manual/messages.html | 3 + manual/migration.html | 3 + manual/performance.html | 3 + manual/plugins.html | 3 + manual/resource-logger.html | 3 + manual/scoped-context.html| 3 + manual/systemproperties.html | 3 + manual/thread-context.html| 3 + manual/usage.html | 3 + plugin-reference.html | 3 + release-notes.html| 3 + runtime-dependencies.html | 3 + sitemap.xml | 124 ++--- thanks.html | 3 + 61 files changed, 398 insertions(+), 869 deletions(-) diff --git a/articles.html b/articles.html index 4b2a87cf11..849d448452 100644 --- a/articles.html +++ b/articles.html @@ -196,6 +196,9 @@ F.A.Q. + +Development + diff --git a/log4j-slf4j-impl.html b/development.html similarity index 65% copy from log4j-slf4j-impl.html copy to development.html index a824976c91..726f97b840 100644 --- a/log4j-slf4j-impl.html +++ b/development.html @@ -3,8 +3,8 @@ -Log4j SLF4J Binding :: Apache Log4j -https://logging.apache.org/log4j/3.x/log4j-slf4j-impl.html;> +Development :: Apache Log4j +https://logging.apache.org/log4j/3.x/development.html;> @@ -196,6 +196,9 @@ F.A.Q. + +Development + @@ -208,7 +211,7 @@ Log4j 1.2 Bridge - + Log4j SLF4J Binding @@ -274,59 +277,199 @@ Home -Components -Log4j SLF4J Binding +Learn +Development -https://github.com/apache/logging-log4j2/edit/main/src/site/antora/modules/ROOT/pages/log4j-slf4j-impl.adoc;>Edit this Page +https://github.com/apache/logging-log4j2/edit/main/src/site/antora/modules/ROOT/pages/development.adoc;>Edit
(logging-log4j2) branch 2.x-site-stg-out updated: Add website content generated from `2c3b341b12f62a4d72c06bbbcb4293ae801e2d45`
This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch 2.x-site-stg-out in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git The following commit(s) were added to refs/heads/2.x-site-stg-out by this push: new d75d130704 Add website content generated from `2c3b341b12f62a4d72c06bbbcb4293ae801e2d45` d75d130704 is described below commit d75d1307044765bb1f32bbac1eee0c7f40ea987e Author: ASF Logging Services RM AuthorDate: Tue Apr 30 18:57:08 2024 + Add website content generated from `2c3b341b12f62a4d72c06bbbcb4293ae801e2d45` --- articles.html | 3 + index.html => development.html| 226 ++ download.html | 3 + faq.html | 3 + guidelines.html | 791 -- index.html| 3 + javadoc.html | 3 + log4j-1.2-api.html| 3 + log4j-api.html| 3 + log4j-appserver.html | 3 + log4j-cassandra.html | 3 + log4j-couchdb.html| 3 + log4j-docker.html | 3 + log4j-flume-ng.html | 3 + log4j-iostreams.html | 3 + log4j-jakarta-web.html| 3 + log4j-jcl.html| 3 + log4j-jmx-gui.html| 3 + log4j-jpl.html| 3 + log4j-jul.html| 3 + log4j-mongodb3.html | 3 + log4j-mongodb4.html | 3 + log4j-slf4j-impl.html | 3 + log4j-slf4j2-impl.html| 3 + log4j-spring-boot.html| 3 + log4j-spring-cloud-config-client.html | 3 + log4j-spring-cloud-config.html| 3 + log4j-taglib.html | 3 + log4j-to-jul.html | 3 + log4j-to-slf4j.html | 3 + log4j-web.html| 3 + manual/api-separation.html| 3 + manual/api.html | 3 + manual/appenders.html | 3 + manual/architecture.html | 3 + manual/async.html | 3 + manual/cloud.html | 3 + manual/compatibility.html | 3 + manual/configuration.html | 3 + manual/customconfig.html | 3 + manual/customloglevels.html | 3 + manual/eventlogging.html | 3 + manual/extending.html | 3 + manual/filters.html | 3 + manual/flowtracing.html | 3 + manual/garbagefree.html | 3 + manual/index.html | 3 + manual/installation.html | 3 + manual/jmx.html | 3 + manual/json-template-layout.html | 3 + manual/layouts.html | 3 + manual/logbuilder.html| 3 + manual/logsep.html| 3 + manual/lookups.html | 3 + manual/markers.html | 3 + manual/messages.html | 3 + manual/migration.html | 3 + manual/performance.html | 3 + manual/plugins.html | 3 + manual/resource-logger.html | 3 + manual/scoped-context.html| 3 + manual/thread-context.html| 3 + manual/usage.html | 3 + manual/webapp.html| 3 + plugin-reference.html | 5 +- release-notes.html| 3 + runtime-dependencies.html | 3 + sitemap.xml | 140 +++--- thanks.html | 3 + 69 files changed, 411 insertions(+), 946 deletions(-) diff --git a/articles.html b/articles.html index 48a3ae30e8..5695d8254f 100644 --- a/articles.html +++ b/articles.html @@ -196,6 +196,9 @@ F.A.Q. + +Development + diff --git a/index.html b/development.html similarity index 66% copy from index.html copy to development.html index 5cb7035330..2d85d46d85 100644 --- a/index.html +++ b/development.html @@ -3,8 +3,8 @@ -Apache Log4j :: Apache Log4j -https://logging.apache.org/log4j/2.x/index.html;> +Development :: Apache Log4j +https://logging.apache.org/log4j/2.x/development.html;> @@ -196,6 +196,9 @@ F.A.Q. + +Development + @@ -273,148 +276,203 @@ - + Home -Apache Log4j +Learn +Development -https://github.com/apache/logging-log4j2/edit/2.x/src/site/antora/modules/ROOT/pages/index.adoc;>Edit this Page +https://github.com/apache/logging-log4j2/edit/2.x/src/site/antora/modules/ROOT/pages/development.adoc;>Edit this Page
(logging-log4j2) branch 2.x-site-stg-out updated: Add `.asf.yaml` along with an INFRA fix for the website content generated from `2c3b341b12f62a4d72c06bbbcb4293ae801e2d45`
This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch 2.x-site-stg-out in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git The following commit(s) were added to refs/heads/2.x-site-stg-out by this push: new 3019a201a7 Add `.asf.yaml` along with an INFRA fix for the website content generated from `2c3b341b12f62a4d72c06bbbcb4293ae801e2d45` 3019a201a7 is described below commit 3019a201a74834a9008098c5ccfc5964ca3883b0 Author: ASF Logging Services RM AuthorDate: Tue Apr 30 18:57:09 2024 + Add `.asf.yaml` along with an INFRA fix for the website content generated from `2c3b341b12f62a4d72c06bbbcb4293ae801e2d45` --- .asf.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.asf.yaml b/.asf.yaml index 49d31392b1..ad112673b6 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -9,6 +9,6 @@ staging: # # Random values to cause a change: # -# - Seed: 16775 -# - Commit ID: 6219e667fdc5aa19e23b699b5eb82dd6d9c61691 -# - Timestamp: 2024-04-30T11:33:20Z +# - Seed: 898 +# - Commit ID: 2c3b341b12f62a4d72c06bbbcb4293ae801e2d45 +# - Timestamp: 2024-04-30T18:57:09Z
(logging-log4j2) branch main updated: Add a new `Development` page (#2520, #2551)
This is an automated email from the ASF dual-hosted git repository. vy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git The following commit(s) were added to refs/heads/main by this push: new 5d357cdcc4 Add a new `Development` page (#2520, #2551) 5d357cdcc4 is described below commit 5d357cdcc461eae076274b9baa770281648bb505 Author: Volkan Yazıcı AuthorDate: Tue Apr 30 20:50:45 2024 +0200 Add a new `Development` page (#2520, #2551) Co-authored-by: Piotr P. Karwasz --- BUILDING.adoc | 41 ++- src/site/antora/modules/ROOT/nav.adoc | 1 + .../antora/modules/ROOT/pages/development.adoc | 109 ++ src/site/antora/modules/ROOT/pages/guidelines.adoc | 381 - 4 files changed, 147 insertions(+), 385 deletions(-) diff --git a/BUILDING.adoc b/BUILDING.adoc index b82b26d7fb..edb19b1e40 100644 --- a/BUILDING.adoc +++ b/BUILDING.adoc @@ -73,15 +73,48 @@ You can view the generated website with a browser by pointing it to `target/site You can follow below steps for casual development needs: -. Make sure you installed everything: `./mvnw install -DskipTests` -. After making a change to, say, `log4j-core`, install your changes: `./mvnw install -pl :log4j-core -DskipTests` -. Run all tests associated with `log4j-core`: `./mvnw test -pl :log4j-core-test` -. Run a particular test: `./mvnw test -pl :log4j-core-test -Dtest=FooBarTest` +. Make sure you installed everything: ++ +[source,bash] + +./mvnw install -DskipTests + + +. After making a change to, say, `log4j-core`, install your changes: ++ +[source,bash] + +./mvnw install -pl :log4j-core -DskipTests + + +. Run all tests associated with `log4j-core`: ++ +[source,bash] + +./mvnw test -pl :log4j-core-test + + +. Run a particular test: ++ +[source,bash] + +./mvnw test -pl :log4j-core-test -Dtest=FooBarTest + + +. Make sure all build checks (Spotless, Spotbugs, BND, RAT, etc.) succeed: ++ +[source,bash] + +./mvnw verify -DskipTests -pl :log4j-core,:log4j-core-test + +[TIP] + You can connect your IDE to a `./mvnw test` run by . Run `./mvnw test -pl :log4j-core-test -Dtest=FooBarTest -Dmaven.surefire.debug` . Use _"Run > Attach to process"_ in IntelliJ IDEA + [#development-faq] === F.A.Q diff --git a/src/site/antora/modules/ROOT/nav.adoc b/src/site/antora/modules/ROOT/nav.adoc index 9da894dbc9..efb53b3a01 100644 --- a/src/site/antora/modules/ROOT/nav.adoc +++ b/src/site/antora/modules/ROOT/nav.adoc @@ -57,6 +57,7 @@ * xref:javadoc.adoc[Java API reference] * xref:articles.adoc[Articles] * xref:faq.adoc[F.A.Q.] +* xref:development.adoc[] .Components * xref:log4j-api.adoc[] diff --git a/src/site/antora/modules/ROOT/pages/development.adoc b/src/site/antora/modules/ROOT/pages/development.adoc new file mode 100644 index 00..cf6bff4316 --- /dev/null +++ b/src/site/antora/modules/ROOT/pages/development.adoc @@ -0,0 +1,109 @@ + +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + += Development + +This page shares information related to the development of Log4j. +Content is aimed for users who want to contribute source code patches and maintainers. + +[TIP] + +Do you need help for setting up or configuring Log4j? +Please refer to {logging-services-url}/support.html[the Support page] instead. + + +[#github] +== GitHub setup + +Log4j uses GitHub extensively: + +Source code repository:: {project-github-url}[] +Issue tracker:: {project-github-url}/issues[] +Discussions:: +{project-github-url}/discussions[] ++ +[TIP] + +Maintainer discussions mostly take place in mailing lists. +Please refer to {logging-services-url}/support.html[the Support page] for the complete list of communication channels. + + +[#branching] +== Branching scheme + +The following branching scheme is followed: + +`2.x`:: The most recent Log4j 2 code + +`main`:: The most recent Log4j 3 code + +`-site-`:: +`-site--out`:: +Branches used to serve the staging and production websites. +`out`-suffixed ones are automatically populated by CI, you are not supposed to touch them. +See
(logging-site) branch asf-site updated (f3f83097 -> aa8a8d77)
This is an automated email from the ASF dual-hosted git repository. vy pushed a change to branch asf-site in repository https://gitbox.apache.org/repos/asf/logging-site.git from f3f83097 Automatic Site Publish by Buildbot add aa8a8d77 Automatic Site Publish by Buildbot No new revisions were added by this update. Summary of changes: content/feed.xml| 2 +- content/guidelines.html | 207 ++-- 2 files changed, 8 insertions(+), 201 deletions(-)
(logging-log4j2) branch feature/2.x/development-page deleted (was 438079e1da)
This is an automated email from the ASF dual-hosted git repository. vy pushed a change to branch feature/2.x/development-page in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git was 438079e1da Improve Java 8 instructions The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(logging-log4j2) branch 2.x updated: Add a new `Development` page (#2520, #2551)
This is an automated email from the ASF dual-hosted git repository. vy pushed a commit to branch 2.x in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git The following commit(s) were added to refs/heads/2.x by this push: new 2c3b341b12 Add a new `Development` page (#2520, #2551) 2c3b341b12 is described below commit 2c3b341b12f62a4d72c06bbbcb4293ae801e2d45 Author: Volkan Yazıcı AuthorDate: Tue Apr 30 20:50:45 2024 +0200 Add a new `Development` page (#2520, #2551) Co-authored-by: Piotr P. Karwasz --- BUILDING.adoc | 62 +++- src/site/antora/modules/ROOT/nav.adoc | 1 + .../antora/modules/ROOT/pages/development.adoc | 109 ++ src/site/antora/modules/ROOT/pages/guidelines.adoc | 381 - 4 files changed, 158 insertions(+), 395 deletions(-) diff --git a/BUILDING.adoc b/BUILDING.adoc index 0148c93c45..27d76641b6 100644 --- a/BUILDING.adoc +++ b/BUILDING.adoc @@ -55,19 +55,13 @@ printf '127.0.0.1 %s\n::1 %s\n' `hostname` `hostname` | sudo tee -a /etc/hosts [#java8-tests] === Java 8 tests -To test the library against the target JRE (JRE 8), you need to configure a JDK 8 toolchains as explained below and run Maven with the `java8-tests` profile: - -[source,bash] - -./mvnw verify -Pjava8-tests - +You can run tests using the target JRE (i.e., JRE 8) as follows: [#toolchains] -=== Configuring Maven Toolchains - -Maven Toolchains is used to employ additional JDKs required for tests. +. Maven Toolchains is used to employ additional JDKs required for tests. You either need to have a user-level configuration in `~/.m2/toolchains.xml` or explicitly provide one to the Maven: `./mvnw --global-toolchains /path/to/toolchains.xml`. - ++ +.An example `toolchains.xml` containing a JDK 8 toolchain [source,xml] @@ -84,6 +78,13 @@ You either need to have a user-level configuration in `~/.m2/toolchains.xml` or +. Run Maven tests with the `java8-tests` profile: ++ +[source,bash] + +./mvnw verify -Pjava8-tests,!java8-incompat-fixes + + [#website] == Building the website @@ -105,15 +106,48 @@ You can view the generated website with a browser by pointing it to `target/site You can follow below steps for casual development needs: -. Make sure you installed everything: `./mvnw install -DskipTests` -. After making a change to, say, `log4j-core`, install your changes: `./mvnw install -pl :log4j-core -DskipTests` -. Run all tests associated with `log4j-core`: `./mvnw test -pl :log4j-core-test` -. Run a particular test: `./mvnw test -pl :log4j-core-test -Dtest=FooBarTest` +. Make sure you installed everything: ++ +[source,bash] + +./mvnw install -DskipTests + + +. After making a change to, say, `log4j-core`, install your changes: ++ +[source,bash] + +./mvnw install -pl :log4j-core -DskipTests + + +. Run all tests associated with `log4j-core`: ++ +[source,bash] + +./mvnw test -pl :log4j-core-test + + +. Run a particular test: ++ +[source,bash] + +./mvnw test -pl :log4j-core-test -Dtest=FooBarTest + + +. Make sure all build checks (Spotless, Spotbugs, BND, RAT, etc.) succeed: ++ +[source,bash] + +./mvnw verify -DskipTests -pl :log4j-core,:log4j-core-test + +[TIP] + You can connect your IDE to a `./mvnw test` run by . Run `./mvnw test -pl :log4j-core-test -Dtest=FooBarTest -Dmaven.surefire.debug` . Use _"Run > Attach to process"_ in IntelliJ IDEA + [#development-faq] === F.A.Q diff --git a/src/site/antora/modules/ROOT/nav.adoc b/src/site/antora/modules/ROOT/nav.adoc index 7453e67fd7..abcc645e4e 100644 --- a/src/site/antora/modules/ROOT/nav.adoc +++ b/src/site/antora/modules/ROOT/nav.adoc @@ -57,6 +57,7 @@ * xref:javadoc.adoc[Java API reference] * xref:articles.adoc[Articles] * xref:faq.adoc[F.A.Q.] +* xref:development.adoc[] .Components * xref:log4j-api.adoc[] diff --git a/src/site/antora/modules/ROOT/pages/development.adoc b/src/site/antora/modules/ROOT/pages/development.adoc new file mode 100644 index 00..cf6bff4316 --- /dev/null +++ b/src/site/antora/modules/ROOT/pages/development.adoc @@ -0,0 +1,109 @@ + +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +
(logging-log4j2) branch feature/2.x/development-page updated (31890787cb -> 438079e1da)
This is an automated email from the ASF dual-hosted git repository. vy pushed a change to branch feature/2.x/development-page in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git from 31890787cb Add a new `Development` page add 438079e1da Improve Java 8 instructions No new revisions were added by this update. Summary of changes: BUILDING.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(logging-log4j2) 01/02: Revamp property description page
This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch doc/2.x/properties in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git commit 820933bd5bdd646e6d1b671eb922ab542b5ba798 Author: Piotr P. Karwasz AuthorDate: Wed Apr 17 12:27:41 2024 +0200 Revamp property description page This PR: * removes the names of pre-2.10 property names from the documentation, * adds a note about fuzzy matching of properties and a list of all prefixes reserved by Log4j, * splits the system properties into sections according to the component that they apply to, * updates the description of configuration properties based on the way they are used in the current code. --- .../modules/ROOT/pages/manual/_properties.adoc | 1013 .../antora/modules/ROOT/pages/manual/async.adoc| 318 +++--- .../modules/ROOT/pages/manual/configuration.adoc | 644 + .../antora/modules/ROOT/pages/manual/webapp.adoc |1 + 4 files changed, 1177 insertions(+), 799 deletions(-) diff --git a/src/site/antora/modules/ROOT/pages/manual/_properties.adoc b/src/site/antora/modules/ROOT/pages/manual/_properties.adoc new file mode 100644 index 00..81f45d88cf --- /dev/null +++ b/src/site/antora/modules/ROOT/pages/manual/_properties.adoc @@ -0,0 +1,1013 @@ + +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +[#SystemProperties] += Global configuration properties + +Log4j contains a simple configuration properties sub-system that aggregates data from multiple property sources, such as Java https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html[System Properties] and https://docs.oracle.com/javase/tutorial/essential/environment/env.html[Environment Variables]. +See <> for a complete list of supported sources + +Global configuration properties are used by Log4j in the following situations: + +* to finely tune global Log4j API and Log4j Core services that are independent of the configuration file, +* to change the default values of attributes used in a configuration file. + +Since Log4j 2.10 all the property names follow a common naming scheme: + + +log4j2.camelCasePropertyName + + +except the environment variables, which follow the: + + +LOG4J_CAMEL_CASE_PROPERTY_NAME + + +convention. + +[NOTE] + +If a `log4j2.system.properties` file is available on the classpath its contents are sourced into Java system properties at Log4j startup. + + +[WARNING] + +To provide backward compatibility with versions older than 2.10 a certain number of additional property names is also supported using a fuzzy matching algorithm. + +In case of problems with the properties sub-system, make sure that your application does not use property names with the following case-insensitive prefixes: + +* `asyncLogger`, +* `disableThreadContext`, +* `isThreadContext`, +* `org.apache.logging.log4j` + +and that all the properties names that start with `log4j` use the normalized form provided by the tables below. + + +== Meta configuration properties + +In order to rapidly optimize Log4j Core for a particular usage, you can use the following properties: + +.Meta configuration properties +[cols="1,1,5"] +|=== +h| Java Property + +(Environment Variable) +h| Default Value +h| Description + +| [[log4j2.isWebapp]]`log4j2.isWebapp` + +(`LOG4J_IS_WEBAPP`) +| `true` if the https://jakarta.ee/specifications/servlet/6.0/apidocs/jakarta.servlet/jakarta/servlet/servlet[Servlet] class on classpath +| Setting this property to `true` switches Log4j Core into "Web application mode" (_"Web-app mode"_). + +In this mode Log4j is optimized to work in a Servlet container. + +This mode is incompatible with <>. + +| [[log4j2.enableThreadlocals]]`log4j2.enableThreadlocals` + +(`LOG4J_ENABLE_THREADLOCALS`) +| `!log4j2.isWebapp` +| Setting this property to `true` switches Log4j Core into "garbage-free mode" (_"GC-free mode"_). + +In this mode Log4j uses `ThreadLocal`s for object pooling to prevent object allocations. + +This mode is incompatible with <>. + +|=== + +== Log4j API properties + +The services included in the
(logging-log4j2) 02/02: Add links to properties page
This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch doc/2.x/properties in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git commit 03e6685347ae604003885370976669f22b3de6c2 Author: Piotr P. Karwasz AuthorDate: Tue Apr 30 19:20:11 2024 +0200 Add links to properties page --- src/site/antora/modules/ROOT/pages/faq.adoc| 6 +- .../antora/modules/ROOT/pages/log4j-jmx-gui.adoc | 2 +- src/site/antora/modules/ROOT/pages/log4j-jul.adoc | 40 +-- .../pages/log4j-spring-cloud-config-client.adoc| 68 + .../modules/ROOT/pages/manual/_properties.adoc | 13 +- .../antora/modules/ROOT/pages/manual/async.adoc| 15 +- .../modules/ROOT/pages/manual/configuration.adoc | 15 +- .../modules/ROOT/pages/manual/garbagefree.adoc | 9 +- src/site/antora/modules/ROOT/pages/manual/jmx.adoc | 6 +- .../antora/modules/ROOT/pages/manual/layouts.adoc | 322 + 10 files changed, 193 insertions(+), 303 deletions(-) diff --git a/src/site/antora/modules/ROOT/pages/faq.adoc b/src/site/antora/modules/ROOT/pages/faq.adoc index 64dc81f017..c333a1c529 100644 --- a/src/site/antora/modules/ROOT/pages/faq.adoc +++ b/src/site/antora/modules/ROOT/pages/faq.adoc @@ -32,7 +32,7 @@ Log4j 2 and onwards use `log4j2.xml`. You can also specify the full path of the configuration file using a system property: + -`-Dlog4j2.configurationFile=/path/to/log4j2.xml` +`-Dxref:manual/configuration.adoc#log4j2.configurationFile[log4j2.configurationFile]=/path/to/log4j2.xml` That property can also be included in a classpath resource file named `log4j2.component.properties`. @@ -127,9 +127,9 @@ Note the `2` in the file name! (See xref:manual/configuration.adoc[the Configuration page] for more details.) . Increase the logging verbosity of the internal status logger: + -`-Dlog4j2.statusLoggerLevel=TRACE` +`-Dxref:manual/configuration.adoc#log4j2.statusLoggerLevel[log4j2.statusLoggerLevel]=TRACE` -. Enable all internal debug logging: `-Dlog4j2.debug`. +. Enable all internal debug logging: `-Dxref:manual/configuration.adoc#log4j2.debug[log4j2.debug]`. This disables level-based status logger filtering and effectively allows all status logs. [#separate_log_files] diff --git a/src/site/antora/modules/ROOT/pages/log4j-jmx-gui.adoc b/src/site/antora/modules/ROOT/pages/log4j-jmx-gui.adoc index 4dd0239289..abf21f6270 100644 --- a/src/site/antora/modules/ROOT/pages/log4j-jmx-gui.adoc +++ b/src/site/antora/modules/ROOT/pages/log4j-jmx-gui.adoc @@ -23,5 +23,5 @@ The client GUI can be run as a stand-alone application or as a JConsole plug-in. The Java VM to be monitored has to enable Log4j JMX support, set the following system property when starting the Java VM: -`log4j2.disableJmx=false` +`xref:manual/configuration.adoc#log4j2.disableJmx[log4j2.disableJmx]=false` diff --git a/src/site/antora/modules/ROOT/pages/log4j-jul.adoc b/src/site/antora/modules/ROOT/pages/log4j-jul.adoc index 1077ecc270..c0d869e14e 100644 --- a/src/site/antora/modules/ROOT/pages/log4j-jul.adoc +++ b/src/site/antora/modules/ROOT/pages/log4j-jul.adoc @@ -43,40 +43,42 @@ Custom Handlers should instead use an appropriate xref:manual/appenders.adoc[App Java logging levels are translated into Log4j logging levels dynamically. The following table lists the conversions between a Java logging level and its equivalent Log4j level. -Custom levels should be implemented as an implementation of `LevelConverter`, and the Log4j property `log4j.jul.levelConverter` must be set to your custom class name. +Custom levels should be implemented as an implementation of `LevelConverter`, and the Log4j property xref:manual/configuration.adoc#log4j2.julLevelConverter[log4j2.julLevelConverter] must be set to your custom class name. Using the default `LevelConverter` implementation, custom logging levels are mapped to whatever the current level of the `Logger` being logged to is using. +[#default-level-conversions] === Default Level Conversions +.JUL to Log4j level conversion |=== | Java Level | Log4j Level -| http://docs.oracle.com/javase/6/docs/api/java/util/logging/Level.html#OFF[`OFF`] -| `OFF` +| http://docs.oracle.com/javase/{java-target-version}/docs/api/java/util/logging/Level.html#OFF[OFF] +| link:../javadoc/log4j-api/org/apache/logging/log4j/Level#OFF[OFF] -| http://docs.oracle.com/javase/6/docs/api/java/util/logging/Level.html#SEVERE[`SEVERE`] -| `ERROR` +| http://docs.oracle.com/javase/{java-target-version}/docs/api/java/util/logging/Level.html#SEVERE[SEVERE] +| link:../javadoc/log4j-api/org/apache/logging/log4j/Level#ERROR[ERROR] -| http://docs.oracle.com/javase/6/docs/api/java/util/logging/Level.html#WARNING[`WARNING`] -| `WARN` +| http://docs.oracle.com/javase/{java-target-version}/docs/api/java/util/logging/Level.html#WARNING[WARNING] +| link:../javadoc/log4j-api/org/apache/logging/log4j/Level#WARN[WARN]
(logging-log4j2) branch doc/2.x/properties created (now 03e6685347)
This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a change to branch doc/2.x/properties in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git at 03e6685347 Add links to properties page This branch includes the following new commits: new 820933bd5b Revamp property description page new 03e6685347 Add links to properties page The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
(logging-log4j2) branch main-site-stg-out updated: Add `.asf.yaml` along with an INFRA fix for the website content generated from `f683f6adfbfccda6c295902ae89133a610ecee85`
This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch main-site-stg-out in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git The following commit(s) were added to refs/heads/main-site-stg-out by this push: new d38f4506f6 Add `.asf.yaml` along with an INFRA fix for the website content generated from `f683f6adfbfccda6c295902ae89133a610ecee85` d38f4506f6 is described below commit d38f4506f6f24ad70eda650800508407d31a62c6 Author: ASF Logging Services RM AuthorDate: Tue Apr 30 13:36:28 2024 + Add `.asf.yaml` along with an INFRA fix for the website content generated from `f683f6adfbfccda6c295902ae89133a610ecee85` --- .asf.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.asf.yaml b/.asf.yaml index ca6d91dbd5..975483926c 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -9,6 +9,6 @@ staging: # # Random values to cause a change: # -# - Seed: 8644 -# - Commit ID: 1aae5d421b02a2b7ed9ba77cea29c8968b507631 -# - Timestamp: 2024-04-26T16:06:59Z +# - Seed: 15643 +# - Commit ID: f683f6adfbfccda6c295902ae89133a610ecee85 +# - Timestamp: 2024-04-30T13:36:28Z
(logging-log4j2) branch main-site-stg-out updated: Add website content generated from `f683f6adfbfccda6c295902ae89133a610ecee85`
This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch main-site-stg-out in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git The following commit(s) were added to refs/heads/main-site-stg-out by this push: new 713deda7bb Add website content generated from `f683f6adfbfccda6c295902ae89133a610ecee85` 713deda7bb is described below commit 713deda7bb33b9d35ae1b3f3df53698b264c2fe2 Author: ASF Logging Services RM AuthorDate: Tue Apr 30 13:36:27 2024 + Add website content generated from `f683f6adfbfccda6c295902ae89133a610ecee85` --- _images/whichjar-2.x.png | Bin 68381 -> 0 bytes _images/whichjar-log4j-1.2-api.png | Bin 24992 -> 0 bytes _images/whichjar-log4j-api.png | Bin 16515 -> 0 bytes _images/whichjar-slf4j-2.x.png | Bin 26650 -> 0 bytes faq.html | 490 ++--- manual/migration.html | 4 +- plugin-reference.html | 7 +- release-notes.html | 6 + sitemap.xml| 118 - 9 files changed, 200 insertions(+), 425 deletions(-) diff --git a/_images/whichjar-2.x.png b/_images/whichjar-2.x.png deleted file mode 100644 index e72a78fe08..00 Binary files a/_images/whichjar-2.x.png and /dev/null differ diff --git a/_images/whichjar-log4j-1.2-api.png b/_images/whichjar-log4j-1.2-api.png deleted file mode 100644 index 8b54810904..00 Binary files a/_images/whichjar-log4j-1.2-api.png and /dev/null differ diff --git a/_images/whichjar-log4j-api.png b/_images/whichjar-log4j-api.png deleted file mode 100644 index 194196aad3..00 Binary files a/_images/whichjar-log4j-api.png and /dev/null differ diff --git a/_images/whichjar-slf4j-2.x.png b/_images/whichjar-slf4j-2.x.png deleted file mode 100644 index b42fb274b3..00 Binary files a/_images/whichjar-slf4j-2.x.png and /dev/null differ diff --git a/faq.html b/faq.html index 839368a241..f6928d3394 100644 --- a/faq.html +++ b/faq.html @@ -286,233 +286,103 @@ F.A.Q. - -Im seeing this error "Unable to locate a logging implementation, using SimpleLogger". What is wrong? + -You have the log4j-api-2.x jar file in your classpath but you still need to add the log4j-core-2.x jar to the classpath. -(Also, it looks like you are using an old version of Log4j 2. -You may want to upgrade.) +This page compiles a list of frequently asked questions. +If you dont find the answer to your question, please consult to https://logging.apache.org/support.html;>the support page. -Which JAR files do I need? +How do I specify the configuration file location? -You need at least the log4j-api-2.x and the log4j-core-2.x jar files. - - -The other jars are necessary if your application calls the API of another logging framework and you want to route logging calls to the Log4j 2 implementation. - - - - - -[#which_jars_log4j-to-slf4j] You can use the log4j-to-slf4j adapter jar when your application calls the Log4j 2 API and you want to route logging calls to a SLF4J implementation. - - - +By default, Log4j looks for a configuration file named log4j2.xml, log4j2.properties, etc. in the classpath. + + + + + + + -Some of the Log4j components have features with optional dependencies. -See the runtime dependencies page for more information. - - +Log4j 1 (which has reached its end-of-life in 2015!) uses log4j.xml. +Log4j 2 and onwards use log4j2.xml. - -How do I exclude conflicting dependencies? - - -There are several scenarios where you may end up with conflicting dependencies, especially transitively included ones. -The following table shows for each Log4j dependency on the left (implicit groupId of org.apache.logging.log4j), the following dependencies on the right can be safely excluded (given in the format groupId:artifactId). - - - - - - - - -Log4j dependency -Dependencies to exclude - - - - -log4j-1.2-api -log4j:log4j -org.slf4j:log4j-over-slf4j + - -log4j-core -log4j:log4j -ch.qos.logback:logback-core -org.apache.logging.log4j:log4j-to-slf4j - - -log4j-jcl -org.slf4j:jcl-over-slf4j - - -log4j-jul -org.slf4j:jul-to-slf4j - - -log4j-slf4j-impl -org.apache.logging.log4j:log4j-to-slf4j -ch.qos.logback:logback-core - - - -Using Apache Maven, dependencies can be globally excluded in your project like so: - - - -dependencies - dependency -groupIdlog4j/groupId -artifactIdlog4j/artifactId -version1.2.17/version -scopeprovided/scope - /dependency -/dependencies - -Dependencies can be explicitly excluded for specific dependencies as well. -For example, to use a project with Log4j 2 instead of Log4j 1.x: - - - -dependencies - dependency -groupIdcom.example/groupId -artifactIdexample-project/artifactId -version1.0/version -exclusions - exclusion -groupIdlog4j/groupId -artifactIdlog4j/artifactId - /exclusion - exclusion -
(logging-log4j2) branch main updated: Revamp the F.A.Q. page (#2506, #2549)
This is an automated email from the ASF dual-hosted git repository. vy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git The following commit(s) were added to refs/heads/main by this push: new f683f6adfb Revamp the F.A.Q. page (#2506, #2549) f683f6adfb is described below commit f683f6adfbfccda6c295902ae89133a610ecee85 Author: Volkan Yazıcı AuthorDate: Tue Apr 30 13:27:09 2024 +0200 Revamp the F.A.Q. page (#2506, #2549) Co-authored-by: Piotr P. Karwasz --- .../antora/modules/ROOT/images/whichjar-2.x.png| Bin 68381 -> 0 bytes .../modules/ROOT/images/whichjar-log4j-1.2-api.png | Bin 24992 -> 0 bytes .../modules/ROOT/images/whichjar-log4j-api.png | Bin 16515 -> 0 bytes .../modules/ROOT/images/whichjar-slf4j-2.x.png | Bin 26650 -> 0 bytes src/site/antora/modules/ROOT/pages/faq.adoc| 401 + 5 files changed, 94 insertions(+), 307 deletions(-) diff --git a/src/site/antora/modules/ROOT/images/whichjar-2.x.png b/src/site/antora/modules/ROOT/images/whichjar-2.x.png deleted file mode 100644 index e72a78fe08..00 Binary files a/src/site/antora/modules/ROOT/images/whichjar-2.x.png and /dev/null differ diff --git a/src/site/antora/modules/ROOT/images/whichjar-log4j-1.2-api.png b/src/site/antora/modules/ROOT/images/whichjar-log4j-1.2-api.png deleted file mode 100644 index 8b54810904..00 Binary files a/src/site/antora/modules/ROOT/images/whichjar-log4j-1.2-api.png and /dev/null differ diff --git a/src/site/antora/modules/ROOT/images/whichjar-log4j-api.png b/src/site/antora/modules/ROOT/images/whichjar-log4j-api.png deleted file mode 100644 index 194196aad3..00 Binary files a/src/site/antora/modules/ROOT/images/whichjar-log4j-api.png and /dev/null differ diff --git a/src/site/antora/modules/ROOT/images/whichjar-slf4j-2.x.png b/src/site/antora/modules/ROOT/images/whichjar-slf4j-2.x.png deleted file mode 100644 index b42fb274b3..00 Binary files a/src/site/antora/modules/ROOT/images/whichjar-slf4j-2.x.png and /dev/null differ diff --git a/src/site/antora/modules/ROOT/pages/faq.adoc b/src/site/antora/modules/ROOT/pages/faq.adoc index 0dd19e9281..a1b3fef318 100644 --- a/src/site/antora/modules/ROOT/pages/faq.adoc +++ b/src/site/antora/modules/ROOT/pages/faq.adoc @@ -17,404 +17,191 @@ Licensed to the Apache Software Foundation (ASF) under one or more = F.A.Q. -[#missing_core] -== I'm seeing this error "Unable to locate a logging implementation, using SimpleLogger". What is wrong? - -You have the log4j-api-2.x jar file in your classpath but you still need to add the log4j-core-2.x jar to the classpath. -(Also, it looks like you are using an old version of Log4j 2. -You may want to upgrade.) - -[#which_jars] -== Which JAR files do I need? - -You need at least the log4j-api-2.x and the log4j-core-2.x jar files. - -The other jars are necessary if your application calls the API of another logging framework and you want to route logging calls to the Log4j 2 implementation. - -image:whichjar-2.x.png[Diagram showing which JARs correspond to which systems] - -[#which_jars_log4j-to-slf4j] You can use the log4j-to-slf4j adapter jar when your application calls the Log4j 2 API and you want to route logging calls to a SLF4J implementation. - -image:whichjar-slf4j-2.x.png[Diagram showing the dependency flow to use Log4j 2 API with SLF4J] - -Some of the Log4j components have features with optional dependencies. -See xref:runtime-dependencies.adoc[the runtime dependencies page] for more information. - -[#exclusions] -== How do I exclude conflicting dependencies? - -There are several scenarios where you may end up with conflicting dependencies, especially transitively included ones. -The following table shows for each Log4j dependency on the left (implicit groupId of `org.apache.logging.log4j`), the following dependencies on the right can be safely excluded (given in the format `groupId:artifactId`). - -[%header,cols="1m,3m"] -|=== -|Log4j dependency -|Dependencies to exclude - -|log4j-1.2-api -|log4j:log4j + -org.slf4j:log4j-over-slf4j - -|log4j-core -|log4j:log4j + -ch.qos.logback:logback-core + -org.apache.logging.log4j:log4j-to-slf4j - -|log4j-jcl -|org.slf4j:jcl-over-slf4j - -|log4j-jul -|org.slf4j:jul-to-slf4j - -|log4j-slf4j-impl -|org.apache.logging.log4j:log4j-to-slf4j + -ch.qos.logback:logback-core -|=== - -Using Apache Maven, dependencies can be globally excluded in your project like so: - -[source,xml] - - - -log4j -log4j -1.2.17 -provided - - - - -Dependencies can be explicitly excluded for specific dependencies as well. -For example, to use a project with Log4j 2 instead of Log4j 1.x: - -[source,xml] - - - -com.example -example-project -1.0 - - -log4j -log4j - - -org.slf4j -slf4j-log4j12 - - - - -org.apache.logging.log4j -log4j-core -
(logging-log4j2) branch feature/2.x/development-page created (now 31890787cb)
This is an automated email from the ASF dual-hosted git repository. vy pushed a change to branch feature/2.x/development-page in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git at 31890787cb Add a new `Development` page This branch includes the following new commits: new 31890787cb Add a new `Development` page The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
(logging-log4j2) 01/01: Add a new `Development` page
This is an automated email from the ASF dual-hosted git repository. vy pushed a commit to branch feature/2.x/development-page in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git commit 31890787cbefb7aac98aa04e5a67758d37e7692a Author: Volkan Yazıcı AuthorDate: Tue Apr 30 15:27:32 2024 +0200 Add a new `Development` page --- BUILDING.adoc | 62 +++- src/site/antora/modules/ROOT/nav.adoc | 1 + .../antora/modules/ROOT/pages/development.adoc | 109 ++ src/site/antora/modules/ROOT/pages/guidelines.adoc | 381 - 4 files changed, 158 insertions(+), 395 deletions(-) diff --git a/BUILDING.adoc b/BUILDING.adoc index 0148c93c45..43834ff1ce 100644 --- a/BUILDING.adoc +++ b/BUILDING.adoc @@ -55,19 +55,13 @@ printf '127.0.0.1 %s\n::1 %s\n' `hostname` `hostname` | sudo tee -a /etc/hosts [#java8-tests] === Java 8 tests -To test the library against the target JRE (JRE 8), you need to configure a JDK 8 toolchains as explained below and run Maven with the `java8-tests` profile: - -[source,bash] - -./mvnw verify -Pjava8-tests - +You can run tests using the target JRE (i.e., JRE 8) as follows: [#toolchains] -=== Configuring Maven Toolchains - -Maven Toolchains is used to employ additional JDKs required for tests. +. Maven Toolchains is used to employ additional JDKs required for tests. You either need to have a user-level configuration in `~/.m2/toolchains.xml` or explicitly provide one to the Maven: `./mvnw --global-toolchains /path/to/toolchains.xml`. - ++ +.An example `toolchains.xml` containing a JDK 8 toolchain [source,xml] @@ -84,6 +78,13 @@ You either need to have a user-level configuration in `~/.m2/toolchains.xml` or +. Run Maven tests with the `java8-tests` profile: ++ +[source,bash] + +./mvnw verify -Pjava8-tests + + [#website] == Building the website @@ -105,15 +106,48 @@ You can view the generated website with a browser by pointing it to `target/site You can follow below steps for casual development needs: -. Make sure you installed everything: `./mvnw install -DskipTests` -. After making a change to, say, `log4j-core`, install your changes: `./mvnw install -pl :log4j-core -DskipTests` -. Run all tests associated with `log4j-core`: `./mvnw test -pl :log4j-core-test` -. Run a particular test: `./mvnw test -pl :log4j-core-test -Dtest=FooBarTest` +. Make sure you installed everything: ++ +[source,bash] + +./mvnw install -DskipTests + + +. After making a change to, say, `log4j-core`, install your changes: ++ +[source,bash] + +./mvnw install -pl :log4j-core -DskipTests + + +. Run all tests associated with `log4j-core`: ++ +[source,bash] + +./mvnw test -pl :log4j-core-test + + +. Run a particular test: ++ +[source,bash] + +./mvnw test -pl :log4j-core-test -Dtest=FooBarTest + + +. Make sure all build checks (Spotless, Spotbugs, BND, RAT, etc.) succeed: ++ +[source,bash] + +./mvnw verify -DskipTests -pl :log4j-core,:log4j-core-test + +[TIP] + You can connect your IDE to a `./mvnw test` run by . Run `./mvnw test -pl :log4j-core-test -Dtest=FooBarTest -Dmaven.surefire.debug` . Use _"Run > Attach to process"_ in IntelliJ IDEA + [#development-faq] === F.A.Q diff --git a/src/site/antora/modules/ROOT/nav.adoc b/src/site/antora/modules/ROOT/nav.adoc index 7453e67fd7..abcc645e4e 100644 --- a/src/site/antora/modules/ROOT/nav.adoc +++ b/src/site/antora/modules/ROOT/nav.adoc @@ -57,6 +57,7 @@ * xref:javadoc.adoc[Java API reference] * xref:articles.adoc[Articles] * xref:faq.adoc[F.A.Q.] +* xref:development.adoc[] .Components * xref:log4j-api.adoc[] diff --git a/src/site/antora/modules/ROOT/pages/development.adoc b/src/site/antora/modules/ROOT/pages/development.adoc new file mode 100644 index 00..cf6bff4316 --- /dev/null +++ b/src/site/antora/modules/ROOT/pages/development.adoc @@ -0,0 +1,109 @@ + +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + += Development + +This page shares information related to the development of Log4j. +Content is aimed for users who want to contribute source code patches and maintainers. + +[TIP]
(logging-site) branch asf-staging updated: Automatic Site Publish by Buildbot
This is an automated email from the ASF dual-hosted git repository. git-site-role pushed a commit to branch asf-staging in repository https://gitbox.apache.org/repos/asf/logging-site.git The following commit(s) were added to refs/heads/asf-staging by this push: new aa8a8d77 Automatic Site Publish by Buildbot aa8a8d77 is described below commit aa8a8d77e9eef7bbb0aa5b325129e8549c044950 Author: buildbot AuthorDate: Tue Apr 30 13:26:29 2024 + Automatic Site Publish by Buildbot --- content/feed.xml| 2 +- content/guidelines.html | 207 ++-- 2 files changed, 8 insertions(+), 201 deletions(-) diff --git a/content/feed.xml b/content/feed.xml index ddaf633e..db0c6306 100644 --- a/content/feed.xml +++ b/content/feed.xml @@ -1,4 +1,4 @@ -http://www.w3.org/2005/Atom; >https://jekyllrb.com/; version="4.2.2">Jekyll2024-04-30T12:06:24+00:00/feed.xmlApache Software Foundation - Logging ServicesWrite an awesome description for your new site here. You can edit this line in _ [...] +http://www.w3.org/2005/Atom; >https://jekyllrb.com/; version="4.2.2">Jekyll2024-04-30T13:26:28+00:00/feed.xmlApache Software Foundation - Logging ServicesWrite an awesome description for your new site here. You can edit this line in _ [...] Today, December 17, 2023 marks a significant milestone for the Apache Logging Services project, as we celebrate 20 years since the inception of Log4j 1. diff --git a/content/guidelines.html b/content/guidelines.html index e669e869..a47af07e 100644 --- a/content/guidelines.html +++ b/content/guidelines.html @@ -72,210 +72,17 @@ Guidelines -This document defines the guidelines under which the Apache Logging Services project operates. It defines the roles and responsibilities of the project, who may vote, how voting works, how conflicts are resolved, etc. - -The Logging Services is a project of the http://www.apache.org/foundation/;>Apache Software Foundation. The foundation holds the copyright on Apache code including the code in the Logging Services codebase. The http://www.apache.org/foundation/faq.html;>foundation FAQ explains the operation and background of the foundation. - -Logging Services is typical of Apache projects in that it operates under a set of principles, known collectively as the “Apache Way”. If you are new to Apache development, please refer to the http://incubator.apache.org;>Incubator project for more information on how Apache projects operate. - -Roles and Responsibilities - -Apache projects define a set of roles with associated rights and responsibilities. These roles govern what tasks an individual may perform within the project. - -Users - -The most important participants in the project are people who use our software. The majority of our developers start out as users and guide their development efforts from the user’s perspective. - -Users contribute to the Apache projects by providing feedback to developers in the form of bug reports and feature suggestions. As well, users participate in the Apache community by helping other users on mailing lists and user support forums. - -Developers - -All of the volunteers who are contributing time, code, documentation, or resources to the Logging Services Project. A developer that makes sustained, welcome contributions to the project may be invited to become a Committer, though the exact timing of such invitations depends on many factors. - -Committers - -The project’s Committers are responsible for the project’s technical management. All committers have write access to the project’s source repositories. Committers may cast binding votes on any technical discussion regarding the project. - -Committer access is by invitation only and must be approved by lazy consensus of the active PMC members. A Committer is considered emeritus by their own declaration or by not contributing in any form to the project for over six months. An emeritus committer may request reinstatement of commit access from the PMC. Such reinstatement is subject to lazy consensus of active PMC members. - -Commit access can be revoked by a unanimous vote of all the active PMC members (except the committer in question if they are also a PMC member). - -All Apache committers are required to have a signed Contributor License Agreement (CLA) on file with the Apache Software Foundation. There is a http://www.apache.org/dev/committers.html;>Committer FAQ which provides more details on the requirements for Committers. - -A committer who makes a sustained contribution to the project may be invited to become a member of the PMC. The form of contribution is not limited to code. It can also include code review, helping out users on the mailing lists, documentation, etc. - -Project Management Committee - -The Project Management Committee (PMC) for Apache Logging Services was created by a http://charter.html;>resolution of the board of the Apache Software
(logging-site) branch main updated: Delegate guidelines to the ASF website
This is an automated email from the ASF dual-hosted git repository. vy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/logging-site.git The following commit(s) were added to refs/heads/main by this push: new 90a7b1d9 Delegate guidelines to the ASF website 90a7b1d9 is described below commit 90a7b1d9df72d20623bcf68fbb2968143d58e656 Author: Volkan Yazıcı AuthorDate: Tue Apr 30 15:26:21 2024 +0200 Delegate guidelines to the ASF website --- guidelines.md | 111 +- 1 file changed, 8 insertions(+), 103 deletions(-) diff --git a/guidelines.md b/guidelines.md index ec07c504..b152f892 100644 --- a/guidelines.md +++ b/guidelines.md @@ -21,106 +21,11 @@ layout: default # Guidelines -This document defines the guidelines under which the Apache Logging Services project operates. It defines the roles and responsibilities of the project, who may vote, how voting works, how conflicts are resolved, etc. - -The Logging Services is a project of the [Apache Software Foundation](http://www.apache.org/foundation/). The foundation holds the copyright on Apache code including the code in the Logging Services codebase. The [foundation FAQ](http://www.apache.org/foundation/faq.html) explains the operation and background of the foundation. - -Logging Services is typical of Apache projects in that it operates under a set of principles, known collectively as the "Apache Way". If you are new to Apache development, please refer to the [Incubator project](http://incubator.apache.org) for more information on how Apache projects operate. - -## Roles and Responsibilities - -Apache projects define a set of roles with associated rights and responsibilities. These roles govern what tasks an individual may perform within the project. - -### Users - -The most important participants in the project are people who use our software. The majority of our developers start out as users and guide their development efforts from the user's perspective. - -Users contribute to the Apache projects by providing feedback to developers in the form of bug reports and feature suggestions. As well, users participate in the Apache community by helping other users on mailing lists and user support forums. - -### Developers - -All of the volunteers who are contributing time, code, documentation, or resources to the Logging Services Project. A developer that makes sustained, welcome contributions to the project may be invited to become a Committer, though the exact timing of such invitations depends on many factors. - -### Committers - -The project's Committers are responsible for the project's technical management. All committers have write access to the project's source repositories. Committers may cast binding votes on any technical discussion regarding the project. - -Committer access is by invitation only and must be approved by lazy consensus of the active PMC members. A Committer is considered emeritus by their own declaration or by not contributing in any form to the project for over six months. An emeritus committer may request reinstatement of commit access from the PMC. Such reinstatement is subject to lazy consensus of active PMC members. - -Commit access can be revoked by a unanimous vote of all the active PMC members (except the committer in question if they are also a PMC member). - -All Apache committers are required to have a signed Contributor License Agreement (CLA) on file with the Apache Software Foundation. There is a [Committer FAQ](http://www.apache.org/dev/committers.html) which provides more details on the requirements for Committers. - -A committer who makes a sustained contribution to the project may be invited to become a member of the PMC. The form of contribution is not limited to code. It can also include code review, helping out users on the mailing lists, documentation, etc. - -### Project Management Committee - -The Project Management Committee (PMC) for Apache Logging Services was created by a [resolution](http://charter.html) of the board of the Apache Software Foundation on 18th November 2002. The PMC is responsible to the board and the ASF for the management and oversight of the Apache Logging Services codebase. The responsibilities of the PMC include: - -- Deciding what is distributed as products of the Apache Logging Services project. In particular all releases must be approved by the PMC. -- Maintaining the project's shared resources, including the codebase repository, mailing lists, websites. -- Speaking on behalf of the project. -- Resolving license disputes regarding products of the project. -- Nominating new PMC members and committers. -- Maintaining these bylaws and other guidelines of the project. - -Membership of the PMC is by invitation only and must be approved by a lazy consensus of active PMC members. A PMC member is considered "emeritus" by their own declaration or
(logging-site) branch asf-site updated (151fa265 -> f3f83097)
This is an automated email from the ASF dual-hosted git repository. vy pushed a change to branch asf-site in repository https://gitbox.apache.org/repos/asf/logging-site.git from 151fa265 Automatic Site Publish by Buildbot add f3f83097 Automatic Site Publish by Buildbot No new revisions were added by this update. Summary of changes: content/feed.xml | 2 +- content/support.html | 6 ++ 2 files changed, 7 insertions(+), 1 deletion(-)
(logging-site) branch asf-staging updated: Automatic Site Publish by Buildbot
This is an automated email from the ASF dual-hosted git repository. git-site-role pushed a commit to branch asf-staging in repository https://gitbox.apache.org/repos/asf/logging-site.git The following commit(s) were added to refs/heads/asf-staging by this push: new f3f83097 Automatic Site Publish by Buildbot f3f83097 is described below commit f3f83097d0f6a30b8997d827f6f2e92b7d4780ac Author: buildbot AuthorDate: Tue Apr 30 12:06:25 2024 + Automatic Site Publish by Buildbot --- content/feed.xml | 2 +- content/support.html | 6 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/content/feed.xml b/content/feed.xml index 6c1ea02f..ddaf633e 100644 --- a/content/feed.xml +++ b/content/feed.xml @@ -1,4 +1,4 @@ -http://www.w3.org/2005/Atom; >https://jekyllrb.com/; version="4.2.2">Jekyll2024-04-25T11:29:49+00:00/feed.xmlApache Software Foundation - Logging ServicesWrite an awesome description for your new site here. You can edit this line in _ [...] +http://www.w3.org/2005/Atom; >https://jekyllrb.com/; version="4.2.2">Jekyll2024-04-30T12:06:24+00:00/feed.xmlApache Software Foundation - Logging ServicesWrite an awesome description for your new site here. You can edit this line in _ [...] Today, December 17, 2023 marks a significant milestone for the Apache Logging Services project, as we celebrate 20 years since the inception of Log4j 1. diff --git a/content/support.html b/content/support.html index ecbe54d2..f2f76b67 100644 --- a/content/support.html +++ b/content/support.html @@ -224,6 +224,9 @@ For more information, please see the https://privacy.apache.org/policie + +https://the-asf.slack.com/archives/C4TQW0M5L;>#logging Slack channel (exclusive to committers) + @@ -244,6 +247,9 @@ Make sure to check the Security page before sending priv...@logging.apache.org mailing list (mailto:priv...@logging.apache.org;>post) is used for discussing other confidential topics with the Logging Services PMC. + +https://the-asf.slack.com/archives/C02Q8FPEW6T;>#logging-pmc Slack channel (exclusive to committers) +
(logging-site) branch main updated: Add Slack channels
This is an automated email from the ASF dual-hosted git repository. vy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/logging-site.git The following commit(s) were added to refs/heads/main by this push: new 2ec74d6e Add Slack channels 2ec74d6e is described below commit 2ec74d6e8d673d67152d63f8d0cbf0153010a28b Author: Volkan Yazıcı AuthorDate: Tue Apr 30 14:06:17 2024 +0200 Add Slack channels --- support.adoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/support.adoc b/support.adoc index 9aedbc24..648a033d 100644 --- a/support.adoc +++ b/support.adoc @@ -85,6 +85,8 @@ Please **don't send mails containing confidential information** to public mailin For more information, please see the https://privacy.apache.org/policies/privacy-policy-public.html[privacy policy] +* https://the-asf.slack.com/archives/C4TQW0M5L[#logging] Slack channel (exclusive to committers) + [#discussions-private] == Private discussions @@ -94,6 +96,7 @@ If it deems necessary, use following channels for private discussions. * `secur...@logging.apache.org` mailing list (mailto:secur...@logging.apache.org[post]) is used for reporting unlisted **security vulnerabilities** or other unexpected behaviour that has a security impact. Make sure to check xref:security.adoc[the Security page] before sending an email. * `priv...@logging.apache.org` mailing list (mailto:priv...@logging.apache.org[post]) is used for discussing other confidential topics with the Logging Services PMC. +* https://the-asf.slack.com/archives/C02Q8FPEW6T[#logging-pmc] Slack channel (exclusive to committers) [#issues] == Issues
(logging-log4j2) branch 2.x-site-stg-out updated: Add `.asf.yaml` along with an INFRA fix for the website content generated from `6219e667fdc5aa19e23b699b5eb82dd6d9c61691`
This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch 2.x-site-stg-out in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git The following commit(s) were added to refs/heads/2.x-site-stg-out by this push: new cc7ee97d56 Add `.asf.yaml` along with an INFRA fix for the website content generated from `6219e667fdc5aa19e23b699b5eb82dd6d9c61691` cc7ee97d56 is described below commit cc7ee97d56a41f5bf71a81050ebf64fb0120967d Author: ASF Logging Services RM AuthorDate: Tue Apr 30 11:33:20 2024 + Add `.asf.yaml` along with an INFRA fix for the website content generated from `6219e667fdc5aa19e23b699b5eb82dd6d9c61691` --- .asf.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.asf.yaml b/.asf.yaml index 73da5b7e46..49d31392b1 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -9,6 +9,6 @@ staging: # # Random values to cause a change: # -# - Seed: 15192 -# - Commit ID: ea0dbc3954062c0e07596b90ec3467fa6a13b124 -# - Timestamp: 2024-04-29T10:04:34Z +# - Seed: 16775 +# - Commit ID: 6219e667fdc5aa19e23b699b5eb82dd6d9c61691 +# - Timestamp: 2024-04-30T11:33:20Z
(logging-log4j2) branch 2.x-site-stg-out updated: Add website content generated from `6219e667fdc5aa19e23b699b5eb82dd6d9c61691`
This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch 2.x-site-stg-out in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git The following commit(s) were added to refs/heads/2.x-site-stg-out by this push: new e1d6ffc04e Add website content generated from `6219e667fdc5aa19e23b699b5eb82dd6d9c61691` e1d6ffc04e is described below commit e1d6ffc04e30068f6a12cb37aede1a083e38311a Author: ASF Logging Services RM AuthorDate: Tue Apr 30 11:33:20 2024 + Add website content generated from `6219e667fdc5aa19e23b699b5eb82dd6d9c61691` --- _images/whichjar-2.x.png | Bin 68381 -> 0 bytes _images/whichjar-log4j-1.2-api.png | Bin 24992 -> 0 bytes _images/whichjar-log4j-api.png | Bin 16515 -> 0 bytes _images/whichjar-slf4j-2.x.png | Bin 26650 -> 0 bytes faq.html | 490 ++--- manual/migration.html | 4 +- plugin-reference.html | 2 +- release-notes.html | 8 +- sitemap.xml| 134 +- 9 files changed, 209 insertions(+), 429 deletions(-) diff --git a/_images/whichjar-2.x.png b/_images/whichjar-2.x.png deleted file mode 100644 index e72a78fe08..00 Binary files a/_images/whichjar-2.x.png and /dev/null differ diff --git a/_images/whichjar-log4j-1.2-api.png b/_images/whichjar-log4j-1.2-api.png deleted file mode 100644 index 8b54810904..00 Binary files a/_images/whichjar-log4j-1.2-api.png and /dev/null differ diff --git a/_images/whichjar-log4j-api.png b/_images/whichjar-log4j-api.png deleted file mode 100644 index 194196aad3..00 Binary files a/_images/whichjar-log4j-api.png and /dev/null differ diff --git a/_images/whichjar-slf4j-2.x.png b/_images/whichjar-slf4j-2.x.png deleted file mode 100644 index b42fb274b3..00 Binary files a/_images/whichjar-slf4j-2.x.png and /dev/null differ diff --git a/faq.html b/faq.html index abaa7e1d96..a323bb07c0 100644 --- a/faq.html +++ b/faq.html @@ -289,233 +289,103 @@ F.A.Q. - -Im seeing this error "Unable to locate a logging implementation, using SimpleLogger". What is wrong? + -You have the log4j-api-2.x jar file in your classpath but you still need to add the log4j-core-2.x jar to the classpath. -(Also, it looks like you are using an old version of Log4j 2. -You may want to upgrade.) +This page compiles a list of frequently asked questions. +If you dont find the answer to your question, please consult to https://logging.apache.org/support.html;>the support page. -Which JAR files do I need? +How do I specify the configuration file location? -You need at least the log4j-api-2.x and the log4j-core-2.x jar files. - - -The other jars are necessary if your application calls the API of another logging framework and you want to route logging calls to the Log4j 2 implementation. - - - - - -[#which_jars_log4j-to-slf4j] You can use the log4j-to-slf4j adapter jar when your application calls the Log4j 2 API and you want to route logging calls to a SLF4J implementation. - - - +By default, Log4j looks for a configuration file named log4j2.xml, log4j2.properties, etc. in the classpath. + + + + + + + -Some of the Log4j components have features with optional dependencies. -See the runtime dependencies page for more information. - - +Log4j 1 (which has reached its end-of-life in 2015!) uses log4j.xml. +Log4j 2 and onwards use log4j2.xml. - -How do I exclude conflicting dependencies? - - -There are several scenarios where you may end up with conflicting dependencies, especially transitively included ones. -The following table shows for each Log4j dependency on the left (implicit groupId of org.apache.logging.log4j), the following dependencies on the right can be safely excluded (given in the format groupId:artifactId). - - - - - - - - -Log4j dependency -Dependencies to exclude - - - - -log4j-1.2-api -log4j:log4j -org.slf4j:log4j-over-slf4j + - -log4j-core -log4j:log4j -ch.qos.logback:logback-core -org.apache.logging.log4j:log4j-to-slf4j - - -log4j-jcl -org.slf4j:jcl-over-slf4j - - -log4j-jul -org.slf4j:jul-to-slf4j - - -log4j-slf4j-impl -org.apache.logging.log4j:log4j-to-slf4j -ch.qos.logback:logback-core - - - -Using Apache Maven, dependencies can be globally excluded in your project like so: - - - -dependencies - dependency -groupIdlog4j/groupId -artifactIdlog4j/artifactId -version1.2.17/version -scopeprovided/scope - /dependency -/dependencies - -Dependencies can be explicitly excluded for specific dependencies as well. -For example, to use a project with Log4j 2 instead of Log4j 1.x: - - - -dependencies - dependency -groupIdcom.example/groupId -artifactIdexample-project/artifactId -version1.0/version -exclusions - exclusion -groupIdlog4j/groupId -artifactIdlog4j/artifactId - /exclusion - exclusion -
(logging-log4j2) branch feature/2.x/faq-revamp deleted (was 88bf2e0b5d)
This is an automated email from the ASF dual-hosted git repository. vy pushed a change to branch feature/2.x/faq-revamp in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git was 88bf2e0b5d Fix property typo The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(logging-log4j2) branch 2.x updated: Revamp the F.A.Q. page (#2506, #2549)
This is an automated email from the ASF dual-hosted git repository. vy pushed a commit to branch 2.x in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git The following commit(s) were added to refs/heads/2.x by this push: new 6219e667fd Revamp the F.A.Q. page (#2506, #2549) 6219e667fd is described below commit 6219e667fdc5aa19e23b699b5eb82dd6d9c61691 Author: Volkan Yazıcı AuthorDate: Tue Apr 30 13:27:09 2024 +0200 Revamp the F.A.Q. page (#2506, #2549) Co-authored-by: Piotr P. Karwasz --- .../antora/modules/ROOT/images/whichjar-2.x.png| Bin 68381 -> 0 bytes .../modules/ROOT/images/whichjar-log4j-1.2-api.png | Bin 24992 -> 0 bytes .../modules/ROOT/images/whichjar-log4j-api.png | Bin 16515 -> 0 bytes .../modules/ROOT/images/whichjar-slf4j-2.x.png | Bin 26650 -> 0 bytes src/site/antora/modules/ROOT/pages/faq.adoc| 401 + 5 files changed, 94 insertions(+), 307 deletions(-) diff --git a/src/site/antora/modules/ROOT/images/whichjar-2.x.png b/src/site/antora/modules/ROOT/images/whichjar-2.x.png deleted file mode 100644 index e72a78fe08..00 Binary files a/src/site/antora/modules/ROOT/images/whichjar-2.x.png and /dev/null differ diff --git a/src/site/antora/modules/ROOT/images/whichjar-log4j-1.2-api.png b/src/site/antora/modules/ROOT/images/whichjar-log4j-1.2-api.png deleted file mode 100644 index 8b54810904..00 Binary files a/src/site/antora/modules/ROOT/images/whichjar-log4j-1.2-api.png and /dev/null differ diff --git a/src/site/antora/modules/ROOT/images/whichjar-log4j-api.png b/src/site/antora/modules/ROOT/images/whichjar-log4j-api.png deleted file mode 100644 index 194196aad3..00 Binary files a/src/site/antora/modules/ROOT/images/whichjar-log4j-api.png and /dev/null differ diff --git a/src/site/antora/modules/ROOT/images/whichjar-slf4j-2.x.png b/src/site/antora/modules/ROOT/images/whichjar-slf4j-2.x.png deleted file mode 100644 index b42fb274b3..00 Binary files a/src/site/antora/modules/ROOT/images/whichjar-slf4j-2.x.png and /dev/null differ diff --git a/src/site/antora/modules/ROOT/pages/faq.adoc b/src/site/antora/modules/ROOT/pages/faq.adoc index 0dd19e9281..64dc81f017 100644 --- a/src/site/antora/modules/ROOT/pages/faq.adoc +++ b/src/site/antora/modules/ROOT/pages/faq.adoc @@ -17,404 +17,191 @@ Licensed to the Apache Software Foundation (ASF) under one or more = F.A.Q. -[#missing_core] -== I'm seeing this error "Unable to locate a logging implementation, using SimpleLogger". What is wrong? - -You have the log4j-api-2.x jar file in your classpath but you still need to add the log4j-core-2.x jar to the classpath. -(Also, it looks like you are using an old version of Log4j 2. -You may want to upgrade.) - -[#which_jars] -== Which JAR files do I need? - -You need at least the log4j-api-2.x and the log4j-core-2.x jar files. - -The other jars are necessary if your application calls the API of another logging framework and you want to route logging calls to the Log4j 2 implementation. - -image:whichjar-2.x.png[Diagram showing which JARs correspond to which systems] - -[#which_jars_log4j-to-slf4j] You can use the log4j-to-slf4j adapter jar when your application calls the Log4j 2 API and you want to route logging calls to a SLF4J implementation. - -image:whichjar-slf4j-2.x.png[Diagram showing the dependency flow to use Log4j 2 API with SLF4J] - -Some of the Log4j components have features with optional dependencies. -See xref:runtime-dependencies.adoc[the runtime dependencies page] for more information. - -[#exclusions] -== How do I exclude conflicting dependencies? - -There are several scenarios where you may end up with conflicting dependencies, especially transitively included ones. -The following table shows for each Log4j dependency on the left (implicit groupId of `org.apache.logging.log4j`), the following dependencies on the right can be safely excluded (given in the format `groupId:artifactId`). - -[%header,cols="1m,3m"] -|=== -|Log4j dependency -|Dependencies to exclude - -|log4j-1.2-api -|log4j:log4j + -org.slf4j:log4j-over-slf4j - -|log4j-core -|log4j:log4j + -ch.qos.logback:logback-core + -org.apache.logging.log4j:log4j-to-slf4j - -|log4j-jcl -|org.slf4j:jcl-over-slf4j - -|log4j-jul -|org.slf4j:jul-to-slf4j - -|log4j-slf4j-impl -|org.apache.logging.log4j:log4j-to-slf4j + -ch.qos.logback:logback-core -|=== - -Using Apache Maven, dependencies can be globally excluded in your project like so: - -[source,xml] - - - -log4j -log4j -1.2.17 -provided - - - - -Dependencies can be explicitly excluded for specific dependencies as well. -For example, to use a project with Log4j 2 instead of Log4j 1.x: - -[source,xml] - - - -com.example -example-project -1.0 - - -log4j -log4j - - -org.slf4j -slf4j-log4j12 - - - - -org.apache.logging.log4j -log4j-core -
(logging-log4j2) 01/01: Enforce `log4j2.enableThreadlocals` system property
This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch feature/2.x/enable-thread-local in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git commit a86abbd6c499e595a938a3b5a4a56555d9bba57e Author: Piotr P. Karwasz AuthorDate: Mon Apr 29 11:52:14 2024 +0200 Enforce `log4j2.enableThreadlocals` system property If the `log4j2.enableThreadlocals` property is set to `false` Log4j should clear all `ThreadLocal`s from the calling thread before execution finishes. A similar rule is also applied to `ThreadContext`: assuming the user takes care of leaving an empty map and stack at the end of the execution, all the `ThreadLocal`s should be cleared. --- log4j-api-test/pom.xml | 37 + .../apache/logging/log4j/test/ThreadLocalUtil.java | 57 ++ .../apache/logging/log4j/test/package-info.java| 2 +- .../map/StringArrayThreadContextMapTest.java | 29 ++- .../log4j/spi/DefaultThreadContextStackTest.java | 27 +++ .../logging/log4j/spi/ThreadContextMapTest.java| 36 + .../internal/map/StringArrayThreadContextMap.java | 11 ++- .../apache/logging/log4j/spi/AbstractLogger.java | 29 --- .../CopyOnWriteSortedArrayThreadContextMap.java| 16 +++- .../logging/log4j/spi/DefaultThreadContextMap.java | 12 ++- .../log4j/spi/DefaultThreadContextStack.java | 26 +-- .../org/apache/logging/log4j/util/Strings.java | 8 +- .../java/org/apache/logging/log4j/util/Timer.java | 19 ++--- .../log4j/core/async/AsyncLoggerConfig.java| 36 - .../logging/log4j/core/config/AppenderControl.java | 2 +- .../log4j/core/filter/StructuredDataFilter.java| 20 +++-- .../org/apache/logging/log4j/jul/LogManager.java | 5 ++ log4j-slf4j2-impl/pom.xml | 37 + .../org/apache/logging/slf4j/Log4jMDCAdapter.java | 90 +- .../apache/logging/slf4j/Log4jMDCAdapterTest.java | 20 - 20 files changed, 425 insertions(+), 94 deletions(-) diff --git a/log4j-api-test/pom.xml b/log4j-api-test/pom.xml index 40d4dc2525..1673c66928 100644 --- a/log4j-api-test/pom.xml +++ b/log4j-api-test/pom.xml @@ -175,4 +175,41 @@ + + + + + + + java8-incompat-fixes + + + + + !env.CI + + + + + + + +org.apache.maven.plugins +maven-surefire-plugin + + --add-opens java.base/java.lang=ALL-UNNAMED + + + + + + + diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadLocalUtil.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadLocalUtil.java new file mode 100644 index 00..a316ed379f --- /dev/null +++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadLocalUtil.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.logging.log4j.test; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +/** + * Utility class to test {@link ThreadLocal} fields. + */ +public final class ThreadLocalUtil { + +private ThreadLocalUtil() {} + +/** + * Returns the number of {@link ThreadLocal} objects that have a value for the current thread. + * + * WARNING: The {@link ThreadLocal#get()} method is not side-effect free. + * If the thread local is not initialized, it initializes it with a value of {@code null}. + * + * @return The number of {@code ThreadLocal} objects with a value in the current thread. + */ +public static int getThreadLocalCount() { +return assertDoesNotThrow(() -> { +final Field threadLocalsField = Thread.class.getDeclaredField("threadLocals"); +threadLocalsField.setAccessible(true); +final Object threadLocalMap = threadLocalsField.get(Thread.currentThread()); +final Method expungeStaleEntries =
(logging-log4j2) branch feature/2.x/enable-thread-local updated (8ec8f6cd41 -> a86abbd6c4)
This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a change to branch feature/2.x/enable-thread-local in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git discard 8ec8f6cd41 Enforce `log4j2.enableThreadlocals` system property new a86abbd6c4 Enforce `log4j2.enableThreadlocals` system property This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (8ec8f6cd41) \ N -- N -- N refs/heads/feature/2.x/enable-thread-local (a86abbd6c4) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
(logging-log4j2) 01/01: Enforce `log4j2.enableThreadlocals` system property
This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch feature/2.x/enable-thread-local in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git commit 8ec8f6cd416a2d43fbc958659bb2107a1acb1c07 Author: Piotr P. Karwasz AuthorDate: Mon Apr 29 11:52:14 2024 +0200 Enforce `log4j2.enableThreadlocals` system property If the `log4j2.enableThreadlocals` property is set to `false` Log4j should clear all `ThreadLocal`s from the calling thread before execution finishes. A similar rule is also applied to `ThreadContext`: assuming the user takes care of leaving an empty map and stack at the end of the execution, all the `ThreadLocal`s should be cleared. --- log4j-api-test/pom.xml | 37 + .../apache/logging/log4j/test/ThreadLocalUtil.java | 57 ++ .../apache/logging/log4j/test/package-info.java| 2 +- .../map/StringArrayThreadContextMapTest.java | 29 ++- .../log4j/spi/DefaultThreadContextStackTest.java | 27 +++ .../logging/log4j/spi/ThreadContextMapTest.java| 36 + .../internal/map/StringArrayThreadContextMap.java | 11 ++- .../apache/logging/log4j/spi/AbstractLogger.java | 28 --- .../CopyOnWriteSortedArrayThreadContextMap.java| 16 +++- .../logging/log4j/spi/DefaultThreadContextMap.java | 12 ++- .../log4j/spi/DefaultThreadContextStack.java | 26 +-- .../org/apache/logging/log4j/util/Strings.java | 8 +- .../java/org/apache/logging/log4j/util/Timer.java | 19 ++--- .../log4j/core/async/AsyncLoggerConfig.java| 36 - .../logging/log4j/core/config/AppenderControl.java | 2 +- .../log4j/core/filter/StructuredDataFilter.java| 20 +++-- .../org/apache/logging/log4j/jul/LogManager.java | 5 ++ log4j-slf4j2-impl/pom.xml | 37 + .../org/apache/logging/slf4j/Log4jMDCAdapter.java | 90 +- .../apache/logging/slf4j/Log4jMDCAdapterTest.java | 20 - 20 files changed, 424 insertions(+), 94 deletions(-) diff --git a/log4j-api-test/pom.xml b/log4j-api-test/pom.xml index 40d4dc2525..1673c66928 100644 --- a/log4j-api-test/pom.xml +++ b/log4j-api-test/pom.xml @@ -175,4 +175,41 @@ + + + + + + + java8-incompat-fixes + + + + + !env.CI + + + + + + + +org.apache.maven.plugins +maven-surefire-plugin + + --add-opens java.base/java.lang=ALL-UNNAMED + + + + + + + diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadLocalUtil.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadLocalUtil.java new file mode 100644 index 00..a316ed379f --- /dev/null +++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadLocalUtil.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.logging.log4j.test; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +/** + * Utility class to test {@link ThreadLocal} fields. + */ +public final class ThreadLocalUtil { + +private ThreadLocalUtil() {} + +/** + * Returns the number of {@link ThreadLocal} objects that have a value for the current thread. + * + * WARNING: The {@link ThreadLocal#get()} method is not side-effect free. + * If the thread local is not initialized, it initializes it with a value of {@code null}. + * + * @return The number of {@code ThreadLocal} objects with a value in the current thread. + */ +public static int getThreadLocalCount() { +return assertDoesNotThrow(() -> { +final Field threadLocalsField = Thread.class.getDeclaredField("threadLocals"); +threadLocalsField.setAccessible(true); +final Object threadLocalMap = threadLocalsField.get(Thread.currentThread()); +final Method expungeStaleEntries =
(logging-log4j2) branch feature/2.x/enable-thread-local updated (fd9152ce0a -> 8ec8f6cd41)
This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a change to branch feature/2.x/enable-thread-local in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git discard fd9152ce0a Enforce `log4j2.enableThreadlocals` system property new 8ec8f6cd41 Enforce `log4j2.enableThreadlocals` system property This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (fd9152ce0a) \ N -- N -- N refs/heads/feature/2.x/enable-thread-local (8ec8f6cd41) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../log4j/core/async/AsyncLoggerConfig.java| 27 +++--- 1 file changed, 14 insertions(+), 13 deletions(-)
(logging-log4j2) branch feature/2.x/faq-revamp updated (16a4e08a77 -> 88bf2e0b5d)
This is an automated email from the ASF dual-hosted git repository. vy pushed a change to branch feature/2.x/faq-revamp in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git from 16a4e08a77 Remove non-API warnings about `Configurator` add 88bf2e0b5d Fix property typo No new revisions were added by this update. Summary of changes: src/site/antora/modules/ROOT/pages/faq.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(logging-log4j2) branch feature/2.x/enable-thread-local created (now fd9152ce0a)
This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a change to branch feature/2.x/enable-thread-local in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git at fd9152ce0a Enforce `log4j2.enableThreadlocals` system property This branch includes the following new commits: new fd9152ce0a Enforce `log4j2.enableThreadlocals` system property The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
(logging-log4j2) 01/01: Enforce `log4j2.enableThreadlocals` system property
This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch feature/2.x/enable-thread-local in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git commit fd9152ce0a48d3e75de938ff5404867a0af9585a Author: Piotr P. Karwasz AuthorDate: Mon Apr 29 11:52:14 2024 +0200 Enforce `log4j2.enableThreadlocals` system property If the `log4j2.enableThreadlocals` property is set to `false` Log4j should clear all `ThreadLocal`s from the calling thread before execution finishes. A similar rule is also applied to `ThreadContext`: assuming the user takes care of leaving an empty map and stack at the end of the execution, all the `ThreadLocal`s should be cleared. --- log4j-api-test/pom.xml | 37 + .../apache/logging/log4j/test/ThreadLocalUtil.java | 57 ++ .../apache/logging/log4j/test/package-info.java| 2 +- .../map/StringArrayThreadContextMapTest.java | 29 ++- .../log4j/spi/DefaultThreadContextStackTest.java | 27 +++ .../logging/log4j/spi/ThreadContextMapTest.java| 36 + .../internal/map/StringArrayThreadContextMap.java | 11 ++- .../apache/logging/log4j/spi/AbstractLogger.java | 28 --- .../CopyOnWriteSortedArrayThreadContextMap.java| 16 +++- .../logging/log4j/spi/DefaultThreadContextMap.java | 12 ++- .../log4j/spi/DefaultThreadContextStack.java | 26 +-- .../org/apache/logging/log4j/util/Strings.java | 8 +- .../java/org/apache/logging/log4j/util/Timer.java | 19 ++--- .../log4j/core/async/AsyncLoggerConfig.java| 11 +-- .../logging/log4j/core/config/AppenderControl.java | 2 +- .../log4j/core/filter/StructuredDataFilter.java| 20 +++-- .../org/apache/logging/log4j/jul/LogManager.java | 5 ++ log4j-slf4j2-impl/pom.xml | 37 + .../org/apache/logging/slf4j/Log4jMDCAdapter.java | 90 +- .../apache/logging/slf4j/Log4jMDCAdapterTest.java | 20 - 20 files changed, 411 insertions(+), 82 deletions(-) diff --git a/log4j-api-test/pom.xml b/log4j-api-test/pom.xml index 40d4dc2525..1673c66928 100644 --- a/log4j-api-test/pom.xml +++ b/log4j-api-test/pom.xml @@ -175,4 +175,41 @@ + + + + + + + java8-incompat-fixes + + + + + !env.CI + + + + + + + +org.apache.maven.plugins +maven-surefire-plugin + + --add-opens java.base/java.lang=ALL-UNNAMED + + + + + + + diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadLocalUtil.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadLocalUtil.java new file mode 100644 index 00..a316ed379f --- /dev/null +++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadLocalUtil.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.logging.log4j.test; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +/** + * Utility class to test {@link ThreadLocal} fields. + */ +public final class ThreadLocalUtil { + +private ThreadLocalUtil() {} + +/** + * Returns the number of {@link ThreadLocal} objects that have a value for the current thread. + * + * WARNING: The {@link ThreadLocal#get()} method is not side-effect free. + * If the thread local is not initialized, it initializes it with a value of {@code null}. + * + * @return The number of {@code ThreadLocal} objects with a value in the current thread. + */ +public static int getThreadLocalCount() { +return assertDoesNotThrow(() -> { +final Field threadLocalsField = Thread.class.getDeclaredField("threadLocals"); +threadLocalsField.setAccessible(true); +final Object threadLocalMap = threadLocalsField.get(Thread.currentThread()); +final Method expungeStaleEntries =
(logging-log4j2) branch feature/2.x/faq-revamp updated (cd5af0422c -> 16a4e08a77)
This is an automated email from the ASF dual-hosted git repository. vy pushed a change to branch feature/2.x/faq-revamp in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git from cd5af0422c Use `Configurator` to reconfigure add 16a4e08a77 Remove non-API warnings about `Configurator` No new revisions were added by this update. Summary of changes: src/site/antora/modules/ROOT/pages/faq.adoc | 8 1 file changed, 4 insertions(+), 4 deletions(-)
(logging-log4j2) branch feature/2.x/faq-revamp updated (dd90271631 -> cd5af0422c)
This is an automated email from the ASF dual-hosted git repository. vy pushed a change to branch feature/2.x/faq-revamp in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git from dd90271631 Fix property name typo add cd5af0422c Use `Configurator` to reconfigure No new revisions were added by this update. Summary of changes: src/site/antora/modules/ROOT/pages/faq.adoc | 11 +++ 1 file changed, 3 insertions(+), 8 deletions(-)
(logging-log4j2) branch feature/2.x/faq-revamp updated (6e96e0834c -> dd90271631)
This is an automated email from the ASF dual-hosted git repository. vy pushed a change to branch feature/2.x/faq-revamp in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git from 6e96e0834c Revamp the FAQ add dd90271631 Fix property name typo No new revisions were added by this update. Summary of changes: src/site/antora/modules/ROOT/pages/faq.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(logging-log4j2) branch feature/2.x/faq-revamp created (now 6e96e0834c)
This is an automated email from the ASF dual-hosted git repository. vy pushed a change to branch feature/2.x/faq-revamp in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git at 6e96e0834c Revamp the FAQ This branch includes the following new commits: new 6e96e0834c Revamp the FAQ The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
(logging-log4j2) 01/01: Revamp the FAQ
This is an automated email from the ASF dual-hosted git repository. vy pushed a commit to branch feature/2.x/faq-revamp in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git commit 6e96e0834cdf54007a340c85cd8dc37d532ab4bc Author: Volkan Yazıcı AuthorDate: Tue Apr 30 10:35:09 2024 +0200 Revamp the FAQ --- .../antora/modules/ROOT/images/whichjar-2.x.png| Bin 68381 -> 0 bytes .../modules/ROOT/images/whichjar-log4j-1.2-api.png | Bin 24992 -> 0 bytes .../modules/ROOT/images/whichjar-log4j-api.png | Bin 16515 -> 0 bytes .../modules/ROOT/images/whichjar-slf4j-2.x.png | Bin 26650 -> 0 bytes src/site/antora/modules/ROOT/pages/faq.adoc| 404 + 5 files changed, 98 insertions(+), 306 deletions(-) diff --git a/src/site/antora/modules/ROOT/images/whichjar-2.x.png b/src/site/antora/modules/ROOT/images/whichjar-2.x.png deleted file mode 100644 index e72a78fe08..00 Binary files a/src/site/antora/modules/ROOT/images/whichjar-2.x.png and /dev/null differ diff --git a/src/site/antora/modules/ROOT/images/whichjar-log4j-1.2-api.png b/src/site/antora/modules/ROOT/images/whichjar-log4j-1.2-api.png deleted file mode 100644 index 8b54810904..00 Binary files a/src/site/antora/modules/ROOT/images/whichjar-log4j-1.2-api.png and /dev/null differ diff --git a/src/site/antora/modules/ROOT/images/whichjar-log4j-api.png b/src/site/antora/modules/ROOT/images/whichjar-log4j-api.png deleted file mode 100644 index 194196aad3..00 Binary files a/src/site/antora/modules/ROOT/images/whichjar-log4j-api.png and /dev/null differ diff --git a/src/site/antora/modules/ROOT/images/whichjar-slf4j-2.x.png b/src/site/antora/modules/ROOT/images/whichjar-slf4j-2.x.png deleted file mode 100644 index b42fb274b3..00 Binary files a/src/site/antora/modules/ROOT/images/whichjar-slf4j-2.x.png and /dev/null differ diff --git a/src/site/antora/modules/ROOT/pages/faq.adoc b/src/site/antora/modules/ROOT/pages/faq.adoc index 0dd19e9281..eadec60fc9 100644 --- a/src/site/antora/modules/ROOT/pages/faq.adoc +++ b/src/site/antora/modules/ROOT/pages/faq.adoc @@ -17,404 +17,196 @@ Licensed to the Apache Software Foundation (ASF) under one or more = F.A.Q. -[#missing_core] -== I'm seeing this error "Unable to locate a logging implementation, using SimpleLogger". What is wrong? - -You have the log4j-api-2.x jar file in your classpath but you still need to add the log4j-core-2.x jar to the classpath. -(Also, it looks like you are using an old version of Log4j 2. -You may want to upgrade.) - -[#which_jars] -== Which JAR files do I need? - -You need at least the log4j-api-2.x and the log4j-core-2.x jar files. - -The other jars are necessary if your application calls the API of another logging framework and you want to route logging calls to the Log4j 2 implementation. - -image:whichjar-2.x.png[Diagram showing which JARs correspond to which systems] - -[#which_jars_log4j-to-slf4j] You can use the log4j-to-slf4j adapter jar when your application calls the Log4j 2 API and you want to route logging calls to a SLF4J implementation. - -image:whichjar-slf4j-2.x.png[Diagram showing the dependency flow to use Log4j 2 API with SLF4J] - -Some of the Log4j components have features with optional dependencies. -See xref:runtime-dependencies.adoc[the runtime dependencies page] for more information. - -[#exclusions] -== How do I exclude conflicting dependencies? - -There are several scenarios where you may end up with conflicting dependencies, especially transitively included ones. -The following table shows for each Log4j dependency on the left (implicit groupId of `org.apache.logging.log4j`), the following dependencies on the right can be safely excluded (given in the format `groupId:artifactId`). - -[%header,cols="1m,3m"] -|=== -|Log4j dependency -|Dependencies to exclude - -|log4j-1.2-api -|log4j:log4j + -org.slf4j:log4j-over-slf4j - -|log4j-core -|log4j:log4j + -ch.qos.logback:logback-core + -org.apache.logging.log4j:log4j-to-slf4j - -|log4j-jcl -|org.slf4j:jcl-over-slf4j - -|log4j-jul -|org.slf4j:jul-to-slf4j - -|log4j-slf4j-impl -|org.apache.logging.log4j:log4j-to-slf4j + -ch.qos.logback:logback-core -|=== - -Using Apache Maven, dependencies can be globally excluded in your project like so: - -[source,xml] - - - -log4j -log4j -1.2.17 -provided - - - - -Dependencies can be explicitly excluded for specific dependencies as well. -For example, to use a project with Log4j 2 instead of Log4j 1.x: - -[source,xml] - - - -com.example -example-project -1.0 - - -log4j -log4j - - -org.slf4j -slf4j-log4j12 - - - - -org.apache.logging.log4j -log4j-core -${Log4jReleaseVersion} - - -org.apache.logging.log4j -log4j-slf4j-impl -${Log4jReleaseVersion} - - -org.apache.logging.log4j -log4j-1.2-api -${Log4jReleaseVersion} - -