@@ -187,4 +187,94 @@ The appender configuration is:
187187 <layout type="log4net.Layout.ExceptionLayout"/>
188188 </parameter>
189189</appender>
190- ----
190+ ----
191+
192+ [#postgresql]
193+ == PostgreSQL
194+
195+ The database table definition is:
196+
197+ [source,sql]
198+ ----
199+ create table Log
200+ (
201+ Id bigint generated by default as identity,
202+ LogDate date not null,
203+ Thread varchar(255) not null,
204+ LogLevel varchar(50) not null,
205+ Logger varchar(255) not null,
206+ LogMessage varchar(2000) not null,
207+ Exception varchar(2000) null,
208+ constraint Log_PKEY primary key (Id)
209+ )
210+ ----
211+
212+ Please add a package reference for the SqlClient to your .csproj file
213+ [source,xml]
214+ ----
215+ <PackageReference Include="Npgsql" Version="*" />
216+ ----
217+
218+ The appender configuration is:
219+
220+ [source,xml]
221+ ----
222+ <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
223+ <bufferSize value="100"/>
224+ <connectionType value="Npgsql.NpgsqlConnection, Npgsql"/>
225+ <connectionString value="data source=[database server];initial catalog=[database name];User ID=[user];Password=[password]"/>
226+ <commandText value="insert into Log (LogDate, Thread, LogLevel, Logger, LogMessage, Exception) values (@LogDate, @Thread, @LogLevel, @Logger, @LogMessage, @Exception)"/>
227+ <parameter>
228+ <parameterName value="@LogDate"/>
229+ <dbType value="DateTime"/>
230+ <layout type="log4net.Layout.RawTimeStampLayout"/>
231+ </parameter>
232+ <parameter>
233+ <parameterName value="@Thread"/>
234+ <dbType value="String"/>
235+ <size value="255"/>
236+ <layout type="log4net.Layout.PatternLayout">
237+ <conversionPattern value="%thread"/>
238+ </layout>
239+ </parameter>
240+ <parameter>
241+ <parameterName value="@LogLevel"/>
242+ <dbType value="String"/>
243+ <size value="50"/>
244+ <layout type="log4net.Layout.PatternLayout">
245+ <conversionPattern value="%level"/>
246+ </layout>
247+ </parameter>
248+ <parameter>
249+ <parameterName value="@Logger"/>
250+ <dbType value="String"/>
251+ <size value="255"/>
252+ <layout type="log4net.Layout.PatternLayout">
253+ <conversionPattern value="%logger"/>
254+ </layout>
255+ </parameter>
256+ <parameter>
257+ <parameterName value="@LogMessage"/>
258+ <dbType value="String"/>
259+ <size value="2000"/>
260+ <layout type="log4net.Layout.PatternLayout">
261+ <conversionPattern value="%message"/>
262+ </layout>
263+ </parameter>
264+ <parameter>
265+ <parameterName value="@Exception"/>
266+ <dbType value="String"/>
267+ <size value="2000"/>
268+ <layout type="log4net.Layout.ExceptionLayout"/>
269+ </parameter>
270+ </appender>
271+ ----
272+
273+ [#other-databases]
274+ == Other databases
275+
276+ You can adjust the provided examples to other databases by
277+
278+ * find a nuget package for connecting via ado.net
279+ * adjust the create table script (tweaking the used data types)
280+ * adjust the connectionType-Property in AdoNetAppender config to the connection type from the nuget package
0 commit comments