[ 
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)

Reply via email to