You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@logging.apache.org by "Simon Evieux (JIRA)" <ji...@apache.org> on 2017/09/01 06:31:02 UTC

[jira] [Commented] (LOG4NET-538) AdoNetAppender to PostgreSQL

    [ https://issues.apache.org/jira/browse/LOG4NET-538?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16150111#comment-16150111 ] 

Simon Evieux commented on LOG4NET-538:
--------------------------------------

OK...I think I got it...

In the AdoNetAppender, in the SendBuffer Method,

dbCmd.Prepare();

is called before the parameters are added to the dbCmd. That is what is crashing with postgreSQL.

If I move the prepare after the loop that adds the parameters, it does work. 
And it does still work with SQLServer



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