[
https://issues.apache.org/jira/browse/LOG4NET-538?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16150149#comment-16150149
]
Simon Evieux commented on LOG4NET-538:
--------------------------------------
Sorry... You are right... I have not been really careful when trying...
here is what you should do :
{code:java}
// Some comments here
virtual protected void SendBuffer(IDbTransaction dbTran, LoggingEvent[] events)
// string.IsNotNullOrWhiteSpace() does not exist in
ancient .NET frameworks
if (CommandText != null && CommandText.Trim() != "")
{
using (IDbCommand dbCmd =
Connection.CreateCommand())
{
// Set the command string
dbCmd.CommandText = CommandText;
// Set the command type
dbCmd.CommandType = CommandType;
// Send buffer using the prepared
command object
if (dbTran != null)
{
dbCmd.Transaction = dbTran;
}
// clear parameters that have been set
dbCmd.Parameters.Clear();
// Set the parameter values
foreach (AdoNetAppenderParameter param
in m_parameters)
param.Prepare(dbCmd);
// prepare the command, which is
significantly faster
dbCmd.Prepare();
// run for all events
foreach (LoggingEvent e in events)
{
// Set the parameter values
foreach
(AdoNetAppenderParameter param in m_parameters)
param.FormatValue(dbCmd, e);
// Execute the query
dbCmd.ExecuteNonQuery();
}
}
}
{code}
> AdoNetAppender to PostgreSQL
> ----------------------------
>
> Key: LOG4NET-538
> URL: https://issues.apache.org/jira/browse/LOG4NET-538
> Project: Log4net
> Issue Type: Bug
> Components: Appenders
> Affects Versions: 1.2.15
> Environment: C#
> Reporter: Cristian Margescu
> Labels: patch
>
> I am using the AdoNetAppender to log audits to the database. I was using
> until some time the 1.2.13 version with a configuration for MSSQL or
> PostgreSQL which inserted practically data as json strings that will later be
> interpreted by another tool using the following appender configuration.
> EX: <appender name="NpgsqlAppender" type="log4net.Appender.AdoNetAppender">
> <filter type="log4net.Filter.LevelRangeFilter">
> <levelMin value="AUDIT" />
> <levelMax value="AUDIT" />
> </filter>
> <bufferSize value="1"/>
> <connectionType
> value="Npgsql.NpgsqlConnection, Npgsql" />
> <connectionString
> value="Server={myServer};Port=5432;Database={database};User
> Id={myuser};Password={mypassword}" />
> <commandText value="INSERT INTO audit (message) VALUES (@message);" />
> <reconnectOnError value="true" />
> <useTransactions value="false"/>
> <parameter>
> <parameterName value="@message" />
> <dbType value="String" />
> <layout type="log4net.Layout.PatternLayout" >
> <conversionPattern value="%message"/>
> </layout>
> </parameter>
> </appender>
> It worked great until I have updated to 1.2.15 and then we have noticed that
> the PosgreSQL appender did not worked any more. After doing some research and
> testing I have narrowed it down to the AdoNetAppender
> that probably has a problem with the parameters because it shows a PG error
> 47203 as column "message" not found.
>
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)