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

Cristian Margescu commented on LOG4NET-538:
-------------------------------------------

Hi Dominik,

The table looks as follows 

CREATE SEQUENCE audit_id_seq;
CREATE TABLE public.audit
(
  "Id" integer NOT NULL DEFAULT nextval('audit_id_seq'::regclass),
  "message" text,
  "timestamp" timestamp without time zone,
  CONSTRAINT audit_id_pkey PRIMARY KEY ("Id")
)

WITH (
  OIDS=FALSE
);
ALTER TABLE public.audit ALTER COLUMN "timestamp" 
SET DEFAULT timezone('utc'::text, now());

ALTER TABLE public.audit
  OWNER TO {user};

The column is there and sample table data looks as follows  
"33" ; "{"employees":[{ "firstName":"John", "lastName":"Doe"},{ 
"firstName":"Anna", "lastName":"Smith"},{ "firstName":"Peter", 
"lastName":"Jones"}]}" ; "2016-12-09 09:32:03.128181"

Update: My mistake, the postgreSQL error is 42703  with the stacktrace as : 

Npgsql.PostgresException (0x80004005): 42703: column "message" does not exist
   at Npgsql.NpgsqlConnector.DoReadMessage(DataRowLoadingMode 
dataRowLoadingMode, Boolean isPrependedMessage)
   at Npgsql.NpgsqlConnector.ReadMessageWithPrepended(DataRowLoadingMode 
dataRowLoadingMode)
   at Npgsql.NpgsqlCommand.Prepare()
   at log4net.Appender.AdoNetAppender.SendBuffer(IDbTransaction dbTran, 
LoggingEvent[] events)
   at log4net.Appender.AdoNetAppender.SendBuffer(LoggingEvent[] events)
   at log4net.Appender.BufferingAppenderSkeleton.Append(LoggingEvent 
loggingEvent)
   at log4net.Appender.AppenderSkeleton.DoAppend(LoggingEvent loggingEvent)

Same configuration and the version 1.2.13 it does work without a problem. 

P.S. - glad to help. 

> 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.3.4#6332)

Reply via email to