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