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 <[email protected]>
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)

Reply via email to