You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by sw...@apache.org on 2024/05/15 04:58:36 UTC
(logging-log4cxx) branch per_appender_warnings created (now 4bd33818)
This is an automated email from the ASF dual-hosted git repository.
swebb2066 pushed a change to branch per_appender_warnings
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
at 4bd33818 Warn about each instance of a mis-configured appender
This branch includes the following new commits:
new 4bd33818 Warn about each instance of a mis-configured appender
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: Warn about each instance of a mis-configured appender
Posted by sw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
swebb2066 pushed a commit to branch per_appender_warnings
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
commit 4bd33818e3e39ebe392309261d6521bd6ec5ee14
Author: Stephen Webb <sw...@gmail.com>
AuthorDate: Wed May 15 14:58:08 2024 +1000
Warn about each instance of a mis-configured appender
---
src/main/cpp/appenderskeleton.cpp | 31 ++++++++++++++++
src/main/cpp/writerappender.cpp | 42 +++++-----------------
.../log4cxx/private/appenderskeleton_priv.h | 6 ++++
.../include/log4cxx/private/writerappender_priv.h | 3 ++
4 files changed, 49 insertions(+), 33 deletions(-)
diff --git a/src/main/cpp/appenderskeleton.cpp b/src/main/cpp/appenderskeleton.cpp
index 878a89dc..3a5e7495 100644
--- a/src/main/cpp/appenderskeleton.cpp
+++ b/src/main/cpp/appenderskeleton.cpp
@@ -131,6 +131,37 @@ void AppenderSkeleton::doAppendImpl(const spi::LoggingEventPtr& event, Pool& poo
append(event, pool1);
}
+bool AppenderSkeleton::AppenderSkeletonPrivate::checkNotClosed()
+{
+ if (this->closed)
+ {
+ if (!this->warnedClosed)
+ {
+ LogLog::warn(LOG4CXX_STR("Not allowed to write to a closed appender."));
+ this->warnedClosed = true;
+ }
+ return false;
+ }
+ return true;
+}
+
+bool AppenderSkeleton::AppenderSkeletonPrivate::checkLayout()
+{
+ if (!this->layout)
+ {
+ if (!this->warnedNoLayout)
+ {
+ this->errorHandler->error
+ ( LogString(LOG4CXX_STR("No layout set for the appender named ["))
+ + this->name + LOG4CXX_STR("].")
+ );
+ this->warnedNoLayout = true;
+ }
+ return false;
+ }
+ return true;
+}
+
void AppenderSkeleton::setErrorHandler(const spi::ErrorHandlerPtr errorHandler1)
{
std::lock_guard<std::recursive_mutex> lock(m_priv->mutex);
diff --git a/src/main/cpp/writerappender.cpp b/src/main/cpp/writerappender.cpp
index 5751f255..b1c5a689 100644
--- a/src/main/cpp/writerappender.cpp
+++ b/src/main/cpp/writerappender.cpp
@@ -107,46 +107,22 @@ void WriterAppender::append(const spi::LoggingEventPtr& event, Pool& pool1)
value <code>false</code> is returned. */
bool WriterAppender::checkEntryConditions() const
{
- static bool warnedClosed = false;
- static bool warnedNoWriter = false;
- static bool warnedNoLayout = false;
-
- if (_priv->closed)
- {
- if (!warnedClosed)
- {
- LogLog::warn(LOG4CXX_STR("Not allowed to write to a closed appender."));
- warnedClosed = true;
- }
-
- return false;
- }
+ return _priv->checkWriter() && _priv->checkLayout() && _priv->checkNotClosed();
+}
- if (_priv->writer == 0)
+bool WriterAppender::WriterAppenderPriv::checkWriter()
+{
+ if (this->writer == 0)
{
- if (!warnedNoWriter)
+ if (!this->warnedNoWriter)
{
- _priv->errorHandler->error(
+ this->errorHandler->error(
LogString(LOG4CXX_STR("No output stream or file set for the appender named [")) +
- _priv->name + LOG4CXX_STR("]."));
- warnedNoWriter = true;
- }
-
- return false;
- }
-
- if (_priv->layout == 0)
- {
- if (!warnedNoLayout)
- {
- _priv->errorHandler->error(
- LogString(LOG4CXX_STR("No layout set for the appender named [")) +
- _priv->name + LOG4CXX_STR("]."));
- warnedNoLayout = true;
+ this->name + LOG4CXX_STR("]."));
+ this->warnedNoWriter = true;
}
return false;
}
-
return true;
}
diff --git a/src/main/include/log4cxx/private/appenderskeleton_priv.h b/src/main/include/log4cxx/private/appenderskeleton_priv.h
index b9660cf3..cba7bec4 100644
--- a/src/main/include/log4cxx/private/appenderskeleton_priv.h
+++ b/src/main/include/log4cxx/private/appenderskeleton_priv.h
@@ -70,6 +70,12 @@ struct AppenderSkeleton::AppenderSkeletonPrivate
LOG4CXX_NS::helpers::Pool pool;
mutable std::recursive_mutex mutex;
+
+ bool warnedClosed = false;
+ bool checkNotClosed();
+
+ bool warnedNoLayout = false;
+ bool checkLayout();
};
}
diff --git a/src/main/include/log4cxx/private/writerappender_priv.h b/src/main/include/log4cxx/private/writerappender_priv.h
index 752c1c3c..30f52eea 100644
--- a/src/main/include/log4cxx/private/writerappender_priv.h
+++ b/src/main/include/log4cxx/private/writerappender_priv.h
@@ -101,6 +101,9 @@ struct WriterAppender::WriterAppenderPriv : public AppenderSkeleton::AppenderSke
#if LOG4CXX_EVENTS_AT_EXIT
helpers::AtExitRegistry::Raii atExitRegistryRaii;
#endif
+
+ bool warnedNoWriter = false;
+ bool checkWriter();
};
}