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 2023/05/03 00:16:52 UTC
[logging-log4cxx] 01/02: Revert "Remove the layout for the ODBC appender, since we only insert into columns (#211)"
This is an automated email from the ASF dual-hosted git repository.
swebb2066 pushed a commit to branch odbc_appender_regression
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
commit 86526407fd55c13702ad90d384c04056fd057efb
Author: Stephen Webb <sw...@gmail.com>
AuthorDate: Wed May 3 10:08:03 2023 +1000
Revert "Remove the layout for the ODBC appender, since we only insert into columns (#211)"
This reverts commit 0be583c3a43bd643f445b14fba9d570aa54274c8.
---
src/main/cpp/odbcappender.cpp | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/src/main/cpp/odbcappender.cpp b/src/main/cpp/odbcappender.cpp
index f6f93158..b5202c6b 100644
--- a/src/main/cpp/odbcappender.cpp
+++ b/src/main/cpp/odbcappender.cpp
@@ -192,7 +192,7 @@ void ODBCAppender::setOption(const LogString& option, const LogString& value)
bool ODBCAppender::requiresLayout() const
{
- return false;
+ return _priv->parameterValue.empty();
}
void ODBCAppender::activateOptions(log4cxx::helpers::Pool&)
@@ -248,7 +248,9 @@ void ODBCAppender::append(const spi::LoggingEventPtr& event, log4cxx::helpers::P
LogString ODBCAppender::getLogStatement(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) const
{
- return event->getMessage();
+ LogString sbuf;
+ getLayout()->format(sbuf, event, p);
+ return sbuf;
}
void ODBCAppender::execute(const LogString& sql, log4cxx::helpers::Pool& p)
@@ -643,7 +645,23 @@ void ODBCAppender::flushBuffer(Pool& p)
void ODBCAppender::setSql(const LogString& s)
{
- _priv->sqlStatement = s;
+ _priv->sqlStatement = s;
+
+ if (getLayout() == 0)
+ {
+ this->setLayout(std::make_shared<PatternLayout>(s));
+ }
+ else
+ {
+ PatternLayoutPtr patternLayout;
+ LayoutPtr asLayout = this->getLayout();
+ patternLayout = log4cxx::cast<PatternLayout>(asLayout);
+
+ if (patternLayout != 0)
+ {
+ patternLayout->setConversionPattern(s);
+ }
+ }
}
#if LOG4CXX_WCHAR_T_API || LOG4CXX_LOGCHAR_IS_WCHAR_T || defined(WIN32) || defined(_WIN32)