You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by fr...@apache.org on 2025/03/17 18:19:46 UTC

(logging-log4net) branch Feature/Antora updated: added potsgres example

This is an automated email from the ASF dual-hosted git repository.

freeandnil pushed a commit to branch Feature/Antora
in repository https://gitbox.apache.org/repos/asf/logging-log4net.git


The following commit(s) were added to refs/heads/Feature/Antora by this push:
     new ded9d792 added potsgres example
ded9d792 is described below

commit ded9d792441d85b391611893b12c9b64a6131a0b
Author: Jan Friedrich <fr...@apache.org>
AuthorDate: Mon Mar 17 19:19:31 2025 +0100

    added potsgres example
---
 src/site/antora/modules/ROOT/nav.adoc              |  3 +-
 .../ROOT/pages/manual/examples/adonetappender.adoc | 92 +++++++++++++++++++++-
 .../examples.adoc}                                 |  0
 3 files changed, 93 insertions(+), 2 deletions(-)

diff --git a/src/site/antora/modules/ROOT/nav.adoc b/src/site/antora/modules/ROOT/nav.adoc
index ac2e2147..0e147fdc 100644
--- a/src/site/antora/modules/ROOT/nav.adoc
+++ b/src/site/antora/modules/ROOT/nav.adoc
@@ -20,7 +20,8 @@
 * xref:manual/index.adoc[]
 ** xref:manual/appenders.adoc[]
 ** xref:manual/configuration.adoc[]
-*** xref:manual/configuration-examples.adoc[]
+*** xref:manual/examples/examples.adoc[]
+**** xref:manual/examples/adonetappender.adoc[]
 ** xref:manual/filters.adoc[]
 ** xref:manual/layouts.adoc[]
 * xref:features.adoc[]
diff --git a/src/site/antora/modules/ROOT/pages/manual/examples/adonetappender.adoc b/src/site/antora/modules/ROOT/pages/manual/examples/adonetappender.adoc
index ba965e73..6aff9029 100644
--- a/src/site/antora/modules/ROOT/pages/manual/examples/adonetappender.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/examples/adonetappender.adoc
@@ -187,4 +187,94 @@ The appender configuration is:
     <layout type="log4net.Layout.ExceptionLayout"/>
   </parameter>
 </appender>
-----
\ No newline at end of file
+----
+
+[#postgresql]
+== PostgreSQL
+
+The database table definition is:
+
+[source,sql]
+----
+create table Log
+(
+  Id bigint generated by default as identity,
+  LogDate date not null,
+  Thread varchar(255) not null,
+  LogLevel varchar(50) not null,
+  Logger varchar(255) not null,
+  LogMessage varchar(2000) not null,
+  Exception varchar(2000) null,
+  constraint Log_PKEY primary key (Id)
+)
+----
+
+Please add a package reference for the SqlClient to your .csproj file
+[source,xml]
+----
+  <PackageReference Include="Npgsql" Version="*" />
+----
+
+The appender configuration is:
+
+[source,xml]
+----
+<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
+  <bufferSize value="100"/>
+	<connectionType value="Npgsql.NpgsqlConnection, Npgsql"/>
+  <connectionString value="data source=[database server];initial catalog=[database name];User ID=[user];Password=[password]"/>
+  <commandText value="insert into Log (LogDate, Thread, LogLevel, Logger, LogMessage, Exception) values (@LogDate, @Thread, @LogLevel, @Logger, @LogMessage, @Exception)"/>
+  <parameter>
+    <parameterName value="@LogDate"/>
+    <dbType value="DateTime"/>
+    <layout type="log4net.Layout.RawTimeStampLayout"/>
+  </parameter>
+  <parameter>
+    <parameterName value="@Thread"/>
+    <dbType value="String"/>
+    <size value="255"/>
+    <layout type="log4net.Layout.PatternLayout">
+      <conversionPattern value="%thread"/>
+    </layout>
+  </parameter>
+  <parameter>
+    <parameterName value="@LogLevel"/>
+    <dbType value="String"/>
+    <size value="50"/>
+    <layout type="log4net.Layout.PatternLayout">
+      <conversionPattern value="%level"/>
+    </layout>
+  </parameter>
+  <parameter>
+    <parameterName value="@Logger"/>
+    <dbType value="String"/>
+    <size value="255"/>
+    <layout type="log4net.Layout.PatternLayout">
+      <conversionPattern value="%logger"/>
+    </layout>
+  </parameter>
+  <parameter>
+    <parameterName value="@LogMessage"/>
+    <dbType value="String"/>
+    <size value="2000"/>
+    <layout type="log4net.Layout.PatternLayout">
+      <conversionPattern value="%message"/>
+    </layout>
+  </parameter>
+  <parameter>
+    <parameterName value="@Exception"/>
+    <dbType value="String"/>
+    <size value="2000"/>
+    <layout type="log4net.Layout.ExceptionLayout"/>
+  </parameter>
+</appender>
+----
+
+[#other-databases]
+== Other databases
+
+You can adjust the provided examples to other databases by
+
+* find a nuget package for connecting via ado.net
+* adjust the create table script (tweaking the used data types)
+* adjust the connectionType-Property in AdoNetAppender config to the connection type from the nuget package
diff --git a/src/site/antora/modules/ROOT/pages/manual/configuration-examples.adoc b/src/site/antora/modules/ROOT/pages/manual/examples/examples.adoc
similarity index 100%
rename from src/site/antora/modules/ROOT/pages/manual/configuration-examples.adoc
rename to src/site/antora/modules/ROOT/pages/manual/examples/examples.adoc