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/04/08 17:33:08 UTC
(logging-log4net-site) branch asf-staging updated: added more antora doc
This is an automated email from the ASF dual-hosted git repository.
freeandnil pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/logging-log4net-site.git
The following commit(s) were added to refs/heads/asf-staging by this push:
new 5c03397 added more antora doc
5c03397 is described below
commit 5c03397034ad640470540834bd5bd29b7c87f2ce
Author: Jan Friedrich <fr...@apache.org>
AuthorDate: Tue Apr 8 19:32:56 2025 +0200
added more antora doc
---
log4net-3.1.0/development.html | 71 +-
log4net-3.1.0/download.html | 73 +-
log4net-3.1.0/features.html | 71 +-
log4net-3.1.0/index.html | 73 +-
log4net-3.1.0/manual/appenders.html | 172 ++++-
log4net-3.1.0/manual/configuration-examples.html | 276 +++-----
.../adonetappender.html} | 148 ++--
log4net-3.1.0/manual/configuration.html | 404 +++++++----
.../adonetappender.html} | 292 ++++++--
.../configuration/bufferingforwardingappender.html | 276 ++++++++
.../configuration/coloredconsoleappender.html | 272 +++++++
.../manual/configuration/consoleappender.html | 261 +++++++
.../manual/configuration/eventlogappender.html | 260 +++++++
log4net-3.1.0/manual/configuration/examples.html | 291 ++++++++
.../manual/configuration/fileappender.html | 282 ++++++++
.../manual/configuration/forwardingappender.html | 250 +++++++
.../manual/configuration/localsyslogappender.html | 274 +++++++
.../managedcoloredconsoleappender.html | 284 ++++++++
.../manual/configuration/memoryappender.html | 245 +++++++
.../configuration/outputdebugstringappender.html | 247 +++++++
.../manual/configuration/remotesyslogappender.html | 315 +++++++++
.../manual/configuration/rollingfileappender.html | 339 +++++++++
.../manual/configuration/smtpappender.html | 305 ++++++++
.../configuration/smtppickupdirappender.html | 272 +++++++
.../manual/configuration/traceappender.html | 247 +++++++
.../manual/configuration/udpappender.html | 250 +++++++
.../manual/{filters.html => examples.html} | 149 ++--
.../adonetappender.html} | 254 +++++--
log4net-3.1.0/manual/examples/examples.html | 241 +++++++
log4net-3.1.0/manual/faq.html | 676 ++++++++++++++++++
log4net-3.1.0/manual/filters.html | 121 +++-
log4net-3.1.0/manual/index.html | 71 +-
log4net-3.1.0/manual/installation.html | 81 ++-
log4net-3.1.0/manual/introduction.html | 786 +++++++++++++++++++++
log4net-3.1.0/manual/layouts.html | 180 ++++-
.../{appenders.html => supported-frameworks.html} | 220 ++++--
log4net-3.1.0/release-notes.html | 71 +-
log4net-3.1.0/release-review.html | 71 +-
log4net-3.1.0/sitemap.xml | 130 +++-
.../{features.html => supported-frameworks.html} | 304 ++++----
40 files changed, 8781 insertions(+), 824 deletions(-)
diff --git a/log4net-3.1.0/development.html b/log4net-3.1.0/development.html
index 79f3ac4..6fffcf6 100644
--- a/log4net-3.1.0/development.html
+++ b/log4net-3.1.0/development.html
@@ -74,6 +74,9 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="manual/index.html">Manual</a>
<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/introduction.html">Introduction</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="manual/appenders.html">Appenders</a>
</li>
@@ -82,16 +85,82 @@
<a class="nav-link" href="manual/configuration.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
- <a class="nav-link" href="manual/configuration-examples.html">Configuration Examples</a>
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="manual/configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/udpappender.html">UdpAppender</a>
+ </li>
+</ul>
</li>
</ul>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/faq.html">F.A.Q.</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="manual/filters.html">Filters</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="manual/layouts.html">Layouts</a>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/supported-frameworks.html">Supported Frameworks</a>
+ </li>
</ul>
</li>
<li class="nav-item" data-depth="1">
diff --git a/log4net-3.1.0/download.html b/log4net-3.1.0/download.html
index 51b24bb..13b7120 100644
--- a/log4net-3.1.0/download.html
+++ b/log4net-3.1.0/download.html
@@ -74,6 +74,9 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="manual/index.html">Manual</a>
<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/introduction.html">Introduction</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="manual/appenders.html">Appenders</a>
</li>
@@ -82,16 +85,82 @@
<a class="nav-link" href="manual/configuration.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
- <a class="nav-link" href="manual/configuration-examples.html">Configuration Examples</a>
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="manual/configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/udpappender.html">UdpAppender</a>
+ </li>
+</ul>
</li>
</ul>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/faq.html">F.A.Q.</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="manual/filters.html">Filters</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="manual/layouts.html">Layouts</a>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/supported-frameworks.html">Supported Frameworks</a>
+ </li>
</ul>
</li>
<li class="nav-item" data-depth="1">
@@ -149,7 +218,7 @@
<ul>
<li>
<p>Are you looking for <strong>the log4net installation instructions</strong>?
-Proceed to <a href="manual/installation.html" class="xref page">Install Apache log4net</a>.</p>
+Proceed to <a href="manual/installation.html" class="xref page">Installation</a>.</p>
</li>
<li>
<p>Are you looking for the list of changes associated with a particular release?
diff --git a/log4net-3.1.0/features.html b/log4net-3.1.0/features.html
index b730cf3..8f92eb1 100644
--- a/log4net-3.1.0/features.html
+++ b/log4net-3.1.0/features.html
@@ -74,6 +74,9 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="manual/index.html">Manual</a>
<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/introduction.html">Introduction</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="manual/appenders.html">Appenders</a>
</li>
@@ -82,16 +85,82 @@
<a class="nav-link" href="manual/configuration.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
- <a class="nav-link" href="manual/configuration-examples.html">Configuration Examples</a>
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="manual/configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/udpappender.html">UdpAppender</a>
+ </li>
+</ul>
</li>
</ul>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/faq.html">F.A.Q.</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="manual/filters.html">Filters</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="manual/layouts.html">Layouts</a>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/supported-frameworks.html">Supported Frameworks</a>
+ </li>
</ul>
</li>
<li class="nav-item is-current-page" data-depth="1">
diff --git a/log4net-3.1.0/index.html b/log4net-3.1.0/index.html
index e359d8f..7310f48 100644
--- a/log4net-3.1.0/index.html
+++ b/log4net-3.1.0/index.html
@@ -74,6 +74,9 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="manual/index.html">Manual</a>
<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/introduction.html">Introduction</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="manual/appenders.html">Appenders</a>
</li>
@@ -82,16 +85,82 @@
<a class="nav-link" href="manual/configuration.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
- <a class="nav-link" href="manual/configuration-examples.html">Configuration Examples</a>
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="manual/configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="manual/configuration/udpappender.html">UdpAppender</a>
+ </li>
+</ul>
</li>
</ul>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/faq.html">F.A.Q.</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="manual/filters.html">Filters</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="manual/layouts.html">Layouts</a>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="manual/supported-frameworks.html">Supported Frameworks</a>
+ </li>
</ul>
</li>
<li class="nav-item" data-depth="1">
@@ -136,7 +205,7 @@
<article class="doc">
<h1 class="page">log4net</h1>
<div class="paragraph">
-<p>The Apache log4net library is a tool to help the programmer output log statements to a variety of output targets.
+<p>The Apache log4net library is a library to output log statements to a variety of output targets.
For more information on log4net see the <a href="features.html" class="xref page">Features</a> document.</p>
</div>
</article>
diff --git a/log4net-3.1.0/manual/appenders.html b/log4net-3.1.0/manual/appenders.html
index 4fc6024..e0d9340 100644
--- a/log4net-3.1.0/manual/appenders.html
+++ b/log4net-3.1.0/manual/appenders.html
@@ -74,6 +74,9 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="index.html">Manual</a>
<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="introduction.html">Introduction</a>
+ </li>
<li class="nav-item is-current-page" data-depth="2">
<a class="nav-link" href="appenders.html">Appenders</a>
</li>
@@ -82,16 +85,82 @@
<a class="nav-link" href="configuration.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
- <a class="nav-link" href="configuration-examples.html">Configuration Examples</a>
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/udpappender.html">UdpAppender</a>
</li>
</ul>
</li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="faq.html">F.A.Q.</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="filters.html">Filters</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="layouts.html">Layouts</a>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="supported-frameworks.html">Supported Frameworks</a>
+ </li>
</ul>
</li>
<li class="nav-item" data-depth="1">
@@ -197,6 +266,10 @@ See <a href="layouts.html" class="xref page">Layouts</a> for more information.</
<td class="tableblock halign-left valign-top"><p class="tableblock">Writes logging events to the ASP trace context. These can then be rendered at the end of the ASP page or on the ASP trace page.</p></td>
</tr>
<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">BufferingForwardingAppender</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Buffers events and then forwards them to attached appenders.</p></td>
+</tr>
+<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ColoredConsoleAppender</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Writes color highlighted logging events to the application’s Windows Console.</p></td>
</tr>
@@ -268,6 +341,103 @@ The RollingFileAppender can be configured to log to multiple files based upon da
</table>
</div>
</div>
+<div class="sect1">
+<h2 id="appender-additivity"><a class="anchor" href="#appender-additivity"></a>Appender Additivity</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A logger can have multiple appenders.</p>
+</div>
+<div class="paragraph">
+<p>Each enabled logging request is passed to all appenders attached to that logger, and also to appenders higher in the logger hierarchy.
+This behavior is called <strong>appender additivity</strong> and is enabled by default.</p>
+</div>
+<div class="paragraph">
+<p>For example, if a console appender is attached to the root logger, all enabled logs will at least print to the console.
+If a file appender is added to logger <code>X</code>, logs from <code>X</code> and its children will go to both the file and the console.</p>
+</div>
+<div class="paragraph">
+<p>Additivity can be disabled by setting a logger’s <code>additivity</code> flag to <code>false</code>.
+This prevents logging events from being passed to ancestor appenders beyond that point.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>If the <code>Animals</code> logger has <code>additivity = false</code>, then the <code>Animals.Carnivora</code> logger will only send its log messages to its own appenders and to <code>Animals</code>’ appenders—
+but not to any appenders higher up in the hierarchy, such as those on the root logger.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Logger Name</th>
+<th class="tableblock halign-left valign-top">Added Appenders</th>
+<th class="tableblock halign-left valign-top">Additivity Flag</th>
+<th class="tableblock halign-left valign-top">Output Targets</th>
+<th class="tableblock halign-left valign-top">Comment</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">root</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ConsoleAppender</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">not applicable</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ConsoleAppender</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Default appender at the root.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Animals</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">FileAppender, RollingFileAppender</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ConsoleAppender, FileAppender, RollingFileAppender</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Appenders of "Animals" and root.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Animals.Carnivora</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">none</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ConsoleAppender, FileAppender, RollingFileAppender</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Inherited from "Animals" and root.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Animals.Carnivora.Felidae</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">SmtpAppender</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ConsoleAppender, FileAppender, RollingFileAppender, SmtpAppender</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Appenders in "Animals.Carnivora.Felidae", "Animals", and root.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Security</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">UdpAppender</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">UdpAppender</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">No appender accumulation because additivity is set to false.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Security.Access</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">none</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">UdpAppender</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Only appenders of "Security" are used due to disabled additivity in "Security".</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
</article>
</div>
</main>
diff --git a/log4net-3.1.0/manual/configuration-examples.html b/log4net-3.1.0/manual/configuration-examples.html
index 60d10d9..c743693 100644
--- a/log4net-3.1.0/manual/configuration-examples.html
+++ b/log4net-3.1.0/manual/configuration-examples.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
- <title>Configuration Examples :: Apache log4net</title>
+ <title>Examples :: Apache log4net</title>
<link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration-examples.html">
<meta name="generator" content="Antora 3.2.0-alpha.6">
<link rel="stylesheet" href="../_/css/site.css">
@@ -74,6 +74,9 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="index.html">Manual</a>
<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="introduction.html">Introduction</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="appenders.html">Appenders</a>
</li>
@@ -81,17 +84,83 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="configuration.html">Configuration</a>
<ul class="nav-list">
- <li class="nav-item is-current-page" data-depth="3">
- <a class="nav-link" href="configuration-examples.html">Configuration Examples</a>
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/udpappender.html">UdpAppender</a>
</li>
</ul>
</li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="faq.html">F.A.Q.</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="filters.html">Filters</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="layouts.html">Layouts</a>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="supported-frameworks.html">Supported Frameworks</a>
+ </li>
</ul>
</li>
<li class="nav-item" data-depth="1">
@@ -124,9 +193,7 @@
<nav class="breadcrumbs" aria-label="breadcrumbs">
<ul>
<li><a href="../index.html">Home</a></li>
- <li><a href="index.html">Manual</a></li>
- <li><a href="configuration.html">Configuration</a></li>
- <li><a href="configuration-examples.html">Configuration Examples</a></li>
+ <li><a href="configuration-examples.html">Examples</a></li>
</ul>
</nav>
<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration-examples.adoc">Edit this Page</a></div>
@@ -136,202 +203,19 @@
<div class="toc-menu"></div>
</aside>
<article class="doc">
-<h1 class="page">Configuration Examples</h1>
-<div id="preamble">
-<div class="sectionbody">
+<h1 class="page">Examples</h1>
<div class="paragraph">
<p>This document presents example configurations for the built-in appenders. These configurations are designed to work with the log4net.Config.XmlConfigurator.</p>
</div>
<div class="paragraph">
<p>These examples are by no means exhaustive configurations for the appenders.</p>
</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="adonetappender"><a class="anchor" href="#adonetappender"></a>AdoNetAppender</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>The configuration of the AdoNetAppender depends on the provider selected for the target database.</p>
-</div>
-<div class="paragraph">
-<p>The following examples show how to configure the AdoNetAppender to log messages to different databases.
-The events are written in batches of 100 (BufferSize).
-The ConnectionType specifies the fully qualified type name for the System.Data.IDbConnection to use to connect to the database.
-The ConnectionString is database provider specific.
-The CommandText is either a prepared statement or a stored procedure, in this case it is a prepared statement.
-Each parameter to the prepared statement or stored procedure is specified with its name, database type and a layout that renders the value for the parameter.</p>
-</div>
-<div class="sect2">
-<h3 id="mssqlserver"><a class="anchor" href="#mssqlserver"></a>MS SQL Server</h3>
-<div class="paragraph">
-<p>The database table definition is:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-sql hljs" data-lang="sql">create table dbo.Log
-(
- Id bigint identity (1, 1) not null,
- LogDate datetime not null,
- Thread nvarchar(255) not null,
- LogLevel nvarchar(50) not null,
- Logger nvarchar(255) not null,
- LogMessage nvarchar(2000) not null,
- Exception nvarchar(2000) null,
- constraint Log_PKEY primary key (Id)
-) with (data_compression = page)</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>Please add a package reference for the SqlClient to your .csproj file</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"> <PackageReference Include="Microsoft.Data.SqlClient" Version="*" /></code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>The appender configuration is:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
- <bufferSize value="100"/>
- <connectionType value="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient"/>
- <connectionString value="data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"/>
- <commandText value="insert into dbo.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></code></pre>
-</div>
-</div>
-</div>
-<div class="sect2">
-<h3 id="oracle"><a class="anchor" href="#oracle"></a>Oracle</h3>
-<div class="paragraph">
-<p>Please add a package reference for the SqlClient to your .csproj file</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"> <PackageReference Include="Oracle.ManagedDataAccess.Core" Version="*" /></code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>The database table definition is:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-sql hljs" data-lang="sql">create table Log
-(
- Id number(10) generated by default as identity,
- LogDate date not null,
- Thread varchar2(255) not null,
- LogLevel varchar2(50) not null,
- Logger varchar2(255) not null,
- LogMessage varchar2(2000) not null,
- Exception varchar2(2000) null,
- constraint Log_PKEY primary key (Id)
-)</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>The appender configuration is:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
- <bufferSize value="100"/>
- <connectionType value="Oracle.ManagedDataAccess.Client.OracleConnection, Oracle.ManagedDataAccess.Client"/>
- <connectionString value="data source=[mydatabase];User ID=[user];Password=[password]"/>
- <commandText value="insert into dbo.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></code></pre>
-</div>
-</div>
-</div>
-</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="examples/adonetappender.html" class="xref page">AdoNetAppender</a></p>
+</li>
+</ul>
</div>
</article>
</div>
diff --git a/log4net-3.1.0/manual/configuration-examples.html b/log4net-3.1.0/manual/configuration-examples/adonetappender.html
similarity index 71%
copy from log4net-3.1.0/manual/configuration-examples.html
copy to log4net-3.1.0/manual/configuration-examples/adonetappender.html
index 60d10d9..c726d11 100644
--- a/log4net-3.1.0/manual/configuration-examples.html
+++ b/log4net-3.1.0/manual/configuration-examples/adonetappender.html
@@ -3,13 +3,13 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
- <title>Configuration Examples :: Apache log4net</title>
- <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration-examples.html">
+ <title>AdoNetAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration-examples/adonetappender.html">
<meta name="generator" content="Antora 3.2.0-alpha.6">
-<link rel="stylesheet" href="../_/css/site.css">
-<link rel="icon" href="../_/../_images/favicon.ico" type="image/x-icon">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
<!-- `@asciidoctor/tabs` extension styles -->
-<link rel="stylesheet" href="../_/css/vendor/tabs.css">
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
<style>
/* Swap colors of `IMPORTANT` and `WARNING` blocks */
.doc .admonitionblock.important .icon { background-color: #f70; }
@@ -60,48 +60,117 @@
<div class="nav-panel-menu is-active" data-panel="menu">
<nav class="nav-menu">
<button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
- <h3 class="title"><a href="../index.html">Home</a></h3>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
<ul class="nav-list">
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../download.html">Download</a>
+ <a class="nav-link" href="../../download.html">Download</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../development.html">Development</a>
+ <a class="nav-link" href="../../development.html">Development</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
- <a class="nav-link" href="index.html">Manual</a>
+ <a class="nav-link" href="../index.html">Manual</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
- <a class="nav-link" href="appenders.html">Appenders</a>
+ <a class="nav-link" href="../introduction.html">Introduction</a>
</li>
<li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
- <a class="nav-link" href="configuration.html">Configuration</a>
+ <a class="nav-link" href="../configuration/examples.html">Examples</a>
<ul class="nav-list">
- <li class="nav-item is-current-page" data-depth="3">
- <a class="nav-link" href="configuration-examples.html">Configuration Examples</a>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/udpappender.html">UdpAppender</a>
</li>
</ul>
</li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
<li class="nav-item" data-depth="2">
- <a class="nav-link" href="filters.html">Filters</a>
+ <a class="nav-link" href="../installation.html">Installation</a>
</li>
<li class="nav-item" data-depth="2">
- <a class="nav-link" href="layouts.html">Layouts</a>
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../features.html">Features</a>
+ <a class="nav-link" href="../../features.html">Features</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../release-notes.html">Release notes</a>
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../release-review.html">Release verification</a>
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
@@ -120,37 +189,24 @@
<main class="article">
<div class="toolbar" role="navigation">
<button class="nav-toggle"></button>
- <a href="../index.html" class="home-link"></a>
+ <a href="../../index.html" class="home-link"></a>
<nav class="breadcrumbs" aria-label="breadcrumbs">
<ul>
- <li><a href="../index.html">Home</a></li>
- <li><a href="index.html">Manual</a></li>
- <li><a href="configuration.html">Configuration</a></li>
- <li><a href="configuration-examples.html">Configuration Examples</a></li>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="adonetappender.html">AdoNetAppender</a></li>
</ul>
</nav>
-<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration-examples.adoc">Edit this Page</a></div>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration-examples/adonetappender.adoc">Edit this Page</a></div>
</div>
<div class="content">
<aside class="toc sidebar" data-title="Contents" data-levels="2">
<div class="toc-menu"></div>
</aside>
<article class="doc">
-<h1 class="page">Configuration Examples</h1>
+<h1 class="page">AdoNetAppender</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
-<p>This document presents example configurations for the built-in appenders. These configurations are designed to work with the log4net.Config.XmlConfigurator.</p>
-</div>
-<div class="paragraph">
-<p>These examples are by no means exhaustive configurations for the appenders.</p>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="adonetappender"><a class="anchor" href="#adonetappender"></a>AdoNetAppender</h2>
-<div class="sectionbody">
-<div class="paragraph">
<p>The configuration of the AdoNetAppender depends on the provider selected for the target database.</p>
</div>
<div class="paragraph">
@@ -161,8 +217,11 @@ The ConnectionString is database provider specific.
The CommandText is either a prepared statement or a stored procedure, in this case it is a prepared statement.
Each parameter to the prepared statement or stored procedure is specified with its name, database type and a layout that renders the value for the parameter.</p>
</div>
-<div class="sect2">
-<h3 id="mssqlserver"><a class="anchor" href="#mssqlserver"></a>MS SQL Server</h3>
+</div>
+</div>
+<div class="sect1">
+<h2 id="mssqlserver"><a class="anchor" href="#mssqlserver"></a>MS SQL Server</h2>
+<div class="sectionbody">
<div class="paragraph">
<p>The database table definition is:</p>
</div>
@@ -246,8 +305,10 @@ Each parameter to the prepared statement or stored procedure is specified with i
</div>
</div>
</div>
-<div class="sect2">
-<h3 id="oracle"><a class="anchor" href="#oracle"></a>Oracle</h3>
+</div>
+<div class="sect1">
+<h2 id="oracle"><a class="anchor" href="#oracle"></a>Oracle</h2>
+<div class="sectionbody">
<div class="paragraph">
<p>Please add a package reference for the SqlClient to your .csproj file</p>
</div>
@@ -332,7 +393,6 @@ Each parameter to the prepared statement or stored procedure is specified with i
</div>
</div>
</div>
-</div>
</article>
</div>
</main>
@@ -349,9 +409,9 @@ Each parameter to the prepared statement or stored procedure is specified with i
Other names may be trademarks of their respective owners.
</p>
</footer>
-<script id="site-script" src="../_/js/site.js" data-ui-root-path="../_"></script>
-<script async src="../_/js/vendor/highlight.js"></script>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
<!-- `@asciidoctor/tabs` extension scripts -->
-<script async src="../_/js/vendor/tabs.js"></script>
+<script async src="../../_/js/vendor/tabs.js"></script>
</body>
</html>
diff --git a/log4net-3.1.0/manual/configuration.html b/log4net-3.1.0/manual/configuration.html
index cf46a30..79fa11f 100644
--- a/log4net-3.1.0/manual/configuration.html
+++ b/log4net-3.1.0/manual/configuration.html
@@ -74,6 +74,9 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="index.html">Manual</a>
<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="introduction.html">Introduction</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="appenders.html">Appenders</a>
</li>
@@ -82,16 +85,82 @@
<a class="nav-link" href="configuration.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
- <a class="nav-link" href="configuration-examples.html">Configuration Examples</a>
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/udpappender.html">UdpAppender</a>
+ </li>
+</ul>
</li>
</ul>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="faq.html">F.A.Q.</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="filters.html">Filters</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="layouts.html">Layouts</a>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="supported-frameworks.html">Supported Frameworks</a>
+ </li>
</ul>
</li>
<li class="nav-item" data-depth="1">
@@ -139,8 +208,8 @@
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
-<p>Using a configuration file is the most popular and recommended approach for configuring log4net.
-In this page we will examine the composition of a configuration file and how log4net uses it.</p>
+<p>The recommended way to configure log4net is through a configuration file.
+This section explains the structure of a configuration file and how log4net processes it.</p>
</div>
<div class="listingblock">
<div class="content">
@@ -170,8 +239,8 @@ private static class MyApp
</div>
</div>
<div class="paragraph">
-<p>MyApp begins by importing log4net related namespaces.
-It then defines a static logger variable with the name MyApp which happens to be the fully qualified name of the class.</p>
+<p>MyApp starts by importing the necessary log4net namespaces.
+It then declares a static logger for the type <code>MyApp</code>.</p>
</div>
<div class="paragraph">
<p>MyApp uses the following Dog class:</p>
@@ -192,9 +261,9 @@ internal sealed class Dog
</div>
</div>
<div class="paragraph">
-<p>The invocation of the BasicConfigurator.Configure() method creates a rather simple log4net setup.
-This method is hardwired to add to the root logger a ConsoleAppender.
-The output will be formatted using a PatternLayout set to the following pattern:</p>
+<p>Calling <code>BasicConfigurator.Configure()</code> sets up a simple log4net configuration.
+This method automatically adds a <code>ConsoleAppender</code> to the root logger,
+formatting the output using a <code>PatternLayout</code> with the following pattern:</p>
</div>
<div class="listingblock">
<div class="content">
@@ -215,18 +284,19 @@ The output will be formatted using a PatternLayout set to the following pattern:
</div>
</div>
<div class="paragraph">
-<p>As a side note, let me mention that in log4net child loggers link only to their existing ancestors.
-In particular, the logger named Animals.Carnivora.Dog is linked directly to the root logger, thereby circumventing the unused Animals or Animals.Carnivora loggers.
-This significantly increases performance and reduces log4net’s memory footprint.</p>
+<p>In log4net, child loggers link only to existing ancestors.
+For example, the logger <code>Animals.Carnivora.Dog</code> is directly linked to the root logger,
+bypassing the unused <code>Animals</code> and <code>Animals.Carnivora</code> loggers.
+This improves performance and reduces log4net’s memory footprint.</p>
</div>
<div class="paragraph">
-<p>The MyApp class configures log4net by invoking BasicConfigurator.Configure() method.
-Other classes only need to import the log4net namespace, retrieve the loggers they wish to use, and log away.</p>
+<p>The <code>MyApp</code> class configures log4net by calling <code>BasicConfigurator.Configure()</code>.
+Other classes simply need to import the log4net namespace, retrieve the desired loggers, and start logging.</p>
</div>
<div class="paragraph">
-<p>The previous example always outputs the same log information.
-Fortunately, it is easy to modify MyApp so that the log output can be controlled at run-time.
-Here is a slightly modified version.</p>
+<p>The previous example always produces the same log output.
+However, <code>MyApp</code> can be modified to allow runtime control over log output.
+Here’s an improved version:</p>
</div>
<div class="listingblock">
<div class="content">
@@ -255,10 +325,10 @@ private static class MyApp
</div>
</div>
<div class="paragraph">
-<p>This version of MyApp instructs the XmlConfigurator to parse a configuration file and set up logging accordingly.</p>
+<p>In this version, <code>MyApp</code> uses <code>XmlConfigurator</code> to load a configuration file and set up logging accordingly.</p>
</div>
<div class="paragraph">
-<p>Here is a sample configuration file that results in exactly same output as the previous BasicConfigurator based example.</p>
+<p>The following sample configuration file produces the same output as the previous <code>BasicConfigurator</code> example:</p>
</div>
<div class="listingblock">
<div class="content">
@@ -267,7 +337,7 @@ private static class MyApp
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<!-- ConsoleAppender uses PatternLayout -->
<layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message%newline" />
+ <conversionPattern value="%-4timestamp [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<!-- Set root logger level to DEBUG and its only appender to ConsoleAppender -->
@@ -279,10 +349,8 @@ private static class MyApp
</div>
</div>
<div class="paragraph">
-<p>Suppose we are no longer interested in seeing the output of any component belonging to the Animals.Carnivora namespace.</p>
-</div>
-<div class="paragraph">
-<p>The following configuration file shows one possible way of achieving this.</p>
+<p>If we want to suppress logging for all components in the <code>Animals.Carnivora</code> namespace,
+we can achieve this with the following configuration file:</p>
</div>
<div class="listingblock">
<div class="content">
@@ -291,7 +359,7 @@ private static class MyApp
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<!-- ConsoleAppender uses PatternLayout -->
<layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message%newline" />
+ <conversionPattern value="%-4timestamp [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<!-- Set root logger level to DEBUG and its only appender to ConsoleAppender -->
@@ -316,12 +384,15 @@ private static class MyApp
</div>
</div>
<div class="paragraph">
-<p>As the logger Animals.Carnivora.Dog does not have an assigned level, it inherits its level from Animals.Carnivora, which was set to WARN in the configuration file.
-The log statement from the Dog.Bark method has the level DEBUG, lower than the logger level WARN.
-Consequently, Bark() method’s log request is suppressed.</p>
+<p>Since the <code>Animals.Carnivora.Dog</code> logger does not have a specific level assigned,
+it inherits the <code>WARN</code> level from <code>Animals.Carnivora</code>, as set in the configuration file.</p>
+</div>
+<div class="paragraph">
+<p>The log statement in <code>Dog.Bark()</code> is at the <code>DEBUG</code> level, which is lower than <code>WARN</code>.
+As a result, the log request from <code>Bark()</code> is suppressed.</p>
</div>
<div class="paragraph">
-<p>Here is another configuration file that uses multiple appenders.</p>
+<p>Below is another configuration file that uses multiple appenders:</p>
</div>
<div class="listingblock">
<div class="content">
@@ -361,16 +432,17 @@ INFO [main] (MyApp.cs:20) - Exiting application.</code></pre>
</div>
</div>
<div class="paragraph">
-<p>In addition, as the root logger has been allocated a second appender, output will also be directed to the example.log file.
-This file will be rolled over when it reaches 100KB.
-When roll-over occurs, the old version of example.log is automatically moved to example.log.1.</p>
+<p>Additionally, since the root logger has a second appender, the output is also written to <code>example.log</code>.
+This file rolls over once it reaches 100KB, moving the old log to <code>example.log.1</code>.</p>
</div>
<div class="paragraph">
-<p>Note that to obtain these different logging behaviors we did not need to recompile code.
-We could just as easily have logged to an email address or redirected all Animals.Carnivora output to an remote syslog server.</p>
+<p>Notably, achieving these different logging behaviors required no code recompilation.
+We could just as easily log to an email address or redirect all <code>Animals.Carnivora</code> output
+to a remote syslog server.</p>
</div>
<div class="paragraph">
-<p>For more examples of configuring appenders using the XmlConfigurator see <a href="configuration-examples.html" class="xref page">Example Appender Configuration</a>.</p>
+<p>For more examples of configuring appenders with <code>XmlConfigurator</code>, see
+<a href="configuration/examples.html" class="xref page">Examples</a>.</p>
</div>
</div>
</div>
@@ -378,34 +450,38 @@ We could just as easily have logged to an email address or redirected all Animal
<h2 id="configuration-attributes"><a class="anchor" href="#configuration-attributes"></a>Configuration Attributes</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>The log4net configuration can be configured using assembly-level attributes rather than specified programmatically.</p>
+<p>log4net can be configured using assembly-level attributes instead of setting it up programmatically.</p>
</div>
<div class="sect2">
<h3 id="xml-configurator-attribute"><a class="anchor" href="#xml-configurator-attribute"></a>XmlConfiguratorAttribute</h3>
<div class="paragraph">
-<p>The log4net.Config.XmlConfiguratorAttribute Allows the XmlConfigurator to be configured using the following properties:</p>
+<p>The <code>log4net.Config.XmlConfiguratorAttribute</code> allows log4net to be configured using the following properties:</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">ConfigFile</dt>
<dd>
-<p>If specified, this is the filename of the configuration file to use with the XmlConfigurator. This file path is relative to the application base directory (AppDomain.CurrentDomain.BaseDirectory).
-This property cannot be used in conjunction with the ConfigFileExtension property.</p>
+<p>Specifies the filename of the configuration file to use with the <code>XmlConfigurator</code>.
+The file path is relative to the application base directory (<code>AppDomain.CurrentDomain.BaseDirectory</code>).
+This property cannot be used with the <code>ConfigFileExtension</code> property.</p>
</dd>
<dt class="hdlist1">ConfigFileExtension</dt>
<dd>
-<p>If specified, this is the extension for the configuration file. The assembly file name is used as the base name with the this extension appended. For example if the assembly is loaded from the a file TestApp.exe and the ConfigFileExtension property is set to log4net then the configuration file name is TestApp.exe.log4net. This is equivalent to setting the ConfigFile property to TestApp.exe.log4net.
-The path to the configuration file is build by using the application base directory (AppDomain.CurrentDomain.BaseDirectory), the assembly file name and the configuration file extension.
-This property cannot be used in conjunction with the ConfigFile property.</p>
+<p>Specifies the extension for the configuration file.
+The assembly filename is used as the base name, with this extension appended.
+For example, if the assembly is <code>TestApp.exe</code> and the <code>ConfigFileExtension</code> is set to <code>log4net</code>, the configuration file will be <code>TestApp.dll.log4net</code>.
+This is equivalent to setting the <code>ConfigFile</code> property to <code>TestApp.dll.log4net</code>.
+The path to the configuration file is built using the application base directory (<code>AppDomain.CurrentDomain.BaseDirectory</code>), the assembly file name, and the configuration file extension.
+This property cannot be used with the <code>ConfigFile</code> property.</p>
</dd>
<dt class="hdlist1">Watch</dt>
<dd>
-<p>If this flag is specified and set to true then the framework will watch the configuration file and will reload the config each time the file is modified.</p>
+<p>If set to <code>true</code>, this flag will enable the framework to monitor the configuration file and automatically reload it when the file is modified.</p>
</dd>
</dl>
</div>
<div class="paragraph">
-<p>If neither of the ConfigFile or ConfigFileExtension properties are specified, the application configuration file (e.g. TestApp.exe.config) will be used as the log4net configuration file.</p>
+<p>If neither the <code>ConfigFile</code> nor the <code>ConfigFileExtension</code> properties are specified, the application configuration file (e.g., <code>TestApp.dll.config</code>) will be used as the log4net configuration file.</p>
</div>
<div class="paragraph">
<p>Example usage:</p>
@@ -415,7 +491,7 @@ This property cannot be used in conjunction with the ConfigFile property.</p>
<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">// Configure log4net using the .config file
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
// This will cause log4net to look for a configuration file
-// called TestApp.exe.config in the application base
+// called TestApp.dll.config in the application base
// directory (i.e. the directory containing TestApp.exe)
// The config file will be watched for changes.</code></pre>
</div>
@@ -425,7 +501,7 @@ This property cannot be used in conjunction with the ConfigFile property.</p>
<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">// Configure log4net using the .log4net file
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "log4net", Watch = true)]
// This will cause log4net to look for a configuration file
-// called TestApp.exe.log4net in the application base
+// called TestApp.dll.log4net in the application base
// directory (i.e. the directory containing TestApp.exe)
// The config file will be watched for changes.</code></pre>
</div>
@@ -435,11 +511,12 @@ This property cannot be used in conjunction with the ConfigFile property.</p>
</div>
<div class="paragraph">
<p>Using attributes can be a clearer method for defining where the application’s configuration will be loaded from.
-However it is worth noting that attributes are purely passive.
-They are information only.
-Therefore if you use configuration attributes you must invoke log4net to allow it to read the attributes.
-A simple call to LogManager.GetLogger will cause the attributes on the calling assembly to be read and processed.
-<strong>Therefore it is imperative to make a logging call as early as possible during the application start-up, and certainly before any external assemblies have been loaded and invoked.</strong></p>
+However, note that attributes are passive — they only provide information.
+Therefore, to trigger log4net to read and process the attributes, you must invoke log4net.
+A simple call to <code>LogManager.GetLogger</code> will cause the attributes on the calling assembly to be processed.</p>
+</div>
+<div class="paragraph">
+<p><strong>It is crucial to make a logging call as early as possible during the application startup, and certainly before any external assemblies are loaded and invoked.</strong></p>
</div>
</div>
</div>
@@ -448,13 +525,13 @@ A simple call to LogManager.GetLogger will cause the attributes on the calling a
<h2 id="appsettings"><a class="anchor" href="#appsettings"></a>AppSettings</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>If you use <a href="#configuration-attributes">attributes</a> to configure log4net, two settings of the appSettings section of your application’s configuration file can be used to override the values given in your assembly’s attributes.</p>
+<p>If you use <a href="#configuration-attributes">attributes</a> to configure log4net, two settings in the appSettings section of your application’s configuration file can override the values specified in your assembly’s attributes.</p>
</div>
<div class="paragraph">
-<p>The setting with the key "log4net.Config" overrides the configuration file name (and is considered to be relative to your application’s base directory), the setting with the key "log4net.Config.Watch" determines whether the file should be monitored for changes.</p>
+<p>The setting with the key <code>log4net.Config</code> overrides the configuration file name (relative to your application’s base directory), while the setting with the key <code>log4net.Config.Watch</code> determines whether the configuration file should be monitored for changes.</p>
</div>
<div class="paragraph">
-<p>Even though the assembly attribute</p>
+<p>For example, even though the assembly attribute:</p>
</div>
<div class="listingblock">
<div class="content">
@@ -462,7 +539,7 @@ A simple call to LogManager.GetLogger will cause the attributes on the calling a
</div>
</div>
<div class="paragraph">
-<p>would configure your application to use a configuration file "TestApp.exe.config" and not monitor it for changes you can override this to use the file "log4net.config" and monitor it instead by adding</p>
+<p>configures your application to use the "TestApp.dll.config" file and not monitor it for changes, you can override this to use the "log4net.config" file and monitor it for changes by adding the following to your application’s configuration file:</p>
</div>
<div class="listingblock">
<div class="content">
@@ -481,7 +558,8 @@ A simple call to LogManager.GetLogger will cause the attributes on the calling a
<h2 id="configuration-files"><a class="anchor" href="#configuration-files"></a>Configuration Files</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>Typically the log4net configuration is specified using a file. This file can be read in one of two ways:</p>
+<p>Typically the log4net configuration is specified using a file.
+This file can be read in one of two ways:</p>
</div>
<div class="ulist">
<ul>
@@ -496,22 +574,23 @@ A simple call to LogManager.GetLogger will cause the attributes on the calling a
<div class="sect2">
<h3 id="config-files"><a class="anchor" href="#config-files"></a>.config Files</h3>
<div class="paragraph">
-<p>The System.Configuration API is only available if the configuration data is in the application’s config file;
-the file named MyApp.exe.config, MyApp.dll.config or Web.config.
-Because the System.Configuration API does not support reloading of the config file the configuration settings cannot be watched using the log4net.Config.XmlConfigurator.ConfigureAndWatch methods.
-The main advantage of using the System.Configuration APIs to read the configuration data is that it requires less permissions than accessing the configuration file directly.</p>
+<p>The <code>System.Configuration</code> API can only be used if the configuration data is stored in the application’s config file (e.g. <code>MyApp.dll.config</code>, <code>MyApp.exe.config</code>, or <code>Web.config</code>).</p>
</div>
<div class="paragraph">
-<p>The only way to configure an application using the System.Configuration APIs is to call the log4net.Config.XmlConfigurator.Configure() method or the log4net.Config.XmlConfigurator.Configure(ILoggerRepository) method.</p>
+<p>The <code>System.Configuration</code> API does not support reloading the config file.
+This means that the configuration settings cannot be watched using the <code>log4net.Config.XmlConfigurator.ConfigureAndWatch</code> methods.</p>
</div>
<div class="paragraph">
-<p>In order to embed the configuration data in the .config file the section name must be identified to the .NET config file parser using a configSections element.
-The section must specify the log4net.Config.Log4NetConfigurationSectionHandler that will be used to parse the config section.
-This type must be fully assembly qualified because it is being loaded by the .NET config file parser not by log4net.
-The correct assembly name for the log4net assembly must be specified.</p>
+<p>To configure an application using the <code>System.Configuration</code> API, you must call one of the following methods:
+* <code>log4net.Config.XmlConfigurator.Configure()</code>
+* <code>log4net.Config.XmlConfigurator.Configure(ILoggerRepository)</code></p>
</div>
<div class="paragraph">
-<p>The following is a simple example configuration file that specifies the correct section handler to use for the log4net section.</p>
+<p>To embed the configuration data in the <code>.config</code> file, you must define the <code>log4net</code> section in the <code>configSections</code> element.
+The section must specify the <code>log4net.Config.Log4NetConfigurationSectionHandler, log4net</code> type.</p>
+</div>
+<div class="paragraph">
+<p>The following is a simple example configuration file that specifies the correct section handler to use for the <code>log4net</code> section.</p>
</div>
<div class="listingblock">
<div class="content">
@@ -533,33 +612,26 @@ The correct assembly name for the log4net assembly must be specified.</p>
</configuration></code></pre>
</div>
</div>
-<div class="paragraph">
-<p>In the above example the log4net assembly is specified.
-This assembly must be located where the .NET runtime can find it.
-For example it could be located in the same directory as the application.</p>
-</div>
-<div class="paragraph">
-<p>When using the .config file to specify the configuration the section name and XML element name must be log4net.</p>
-</div>
</div>
<div class="sect2">
<h3 id="reading-files-directly"><a class="anchor" href="#reading-files-directly"></a>Reading Files Directly</h3>
<div class="paragraph">
-<p>The XmlConfigurator can directly read any XML file and use it to configure log4net.
-This includes the application’s .config file; the file named MyApp.exe.config, MyApp.dll.config or Web.config.
-The only reason not to read the configuration file directly is if the application does not have sufficient permissions to read the file, then the configuration must be loaded using the .NET configuration APIs (see above).</p>
+<p>The <code>XmlConfigurator</code> can directly read any XML file and use it to configure log4net.
+This includes the application’s <code>.config</code> file (e.g. <code>MyApp.dll.config</code>, <code>MyApp.exe.config</code>, or <code>Web.config</code>).</p>
</div>
<div class="paragraph">
-<p>The file to read the configuration from can be specified using any of the log4net.Config.XmlConfigurator methods that accept a System.IO.FileInfo object.
-Because the file system can be monitored for file change notifications the ConfigureAndWatch methods can be used to monitor the configuration file for modifications and automatically reconfigure log4net.</p>
+<p>You can specify the configuration file using <code>log4net.Config.XmlConfigurator</code> methods that accept a <code>System.IO.FileInfo</code> object.
+To auto-reconfigure on changes, use <code>ConfigureAndWatch</code>, which monitors the file for updates.</p>
</div>
<div class="paragraph">
-<p>Additionally the log4net.Config.XmlConfiguratorAttribute can be used to specify the file to read the configuration from.</p>
+<p>Additionally, the <code>log4net.Config.XmlConfiguratorAttribute</code> can be used to specify the file to read the configuration from.</p>
</div>
<div class="paragraph">
-<p>The configuration is read from the log4net element in the file.
-Only one log4net element can be specified in the file but it may be located anywhere in the XML hierarchy.
-For example it may be the root element:</p>
+<p>The configuration is read from the <code>log4net</code> element in the file.
+Only one <code>log4net</code> element can be specified in the file, but it may be located anywhere in the <code>XML</code> hierarchy.</p>
+</div>
+<div class="paragraph">
+<p>For example, it may be the root element:</p>
</div>
<div class="listingblock">
<div class="content">
@@ -600,10 +672,9 @@ For example it may be the root element:</p>
</div>
</div>
<div class="paragraph">
-<p>The above example shows how the configuration data can be embedded inside a .config file even though the file is being read directly by log4net.
-An important note is that the .NET config file parser will throw an exception if it finds an element that has not been registered using the configSections element.
-Therefore in the above example the log4net section name is registered, but the type specified to handle the section is System.Configuration.IgnoreSectionHandler.
-This is a built-in class that indicates that another method for reading the config section will be employed.</p>
+<p>The example shows how to embed configuration data in a .config file while allowing log4net to read it directly.
+Since the .NET config parser throws errors for unregistered elements, the <code>log4net</code> section is registered using <code>System.Configuration.IgnoreSectionHandler</code>.
+This tells .NET to ignore the section, as it will be processed by log4net instead.</p>
</div>
</div>
</div>
@@ -612,14 +683,13 @@ This is a built-in class that indicates that another method for reading the conf
<h2 id="configuration-syntax"><a class="anchor" href="#configuration-syntax"></a>Configuration Syntax</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>log4net includes a configuration reader that parses an XML DOM, the log4net.Config.XmlConfigurator.
-This section defines the syntax accepted by the configurator.</p>
+<p>log4net provides an XML-based configuration reader, <code>log4net.Config.XmlConfigurator</code>.
+This section outlines the syntax accepted by the configurator.</p>
</div>
<div class="paragraph">
-<p>This is an example of a valid XML configuration.
-The root element must be <log4net>.
-Note that this does not mean that this element cannot be embedded in another XML document.
-See the section above on Configuration Files for more information on how to embed the XmlConfigurator XML in a configuration file.</p>
+<p>A valid XML configuration must have <code><log4net></code> as the root element.
+However, this element can be embedded in another XML document.
+For details on embedding XML configurations in a file, see the section on <a href="#config-files">.config Files</a>.</p>
</div>
<div class="listingblock">
<div class="content">
@@ -637,7 +707,7 @@ See the section above on Configuration Files for more information on how to embe
</div>
</div>
<div class="paragraph">
-<p>The <log4net> element supports the following attributes:</p>
+<p>The <code><log4net></code> element supports the following attributes:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
@@ -669,7 +739,7 @@ See the section above on Configuration Files for more information on how to embe
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Merge or Overwrite</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Merge</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Set this attribute to Overwrite to reset the configuration of the repository being configured before applying this configuration.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Set this attribute to <code>Overwrite</code> to reset the configuration of the repository being configured before applying this configuration.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">threshold</p></td>
@@ -681,7 +751,7 @@ See the section above on Configuration Files for more information on how to embe
</tbody>
</table>
<div class="paragraph">
-<p>The <log4net> element supports the following child elements:</p>
+<p>The <code><log4net></code> element supports the following child elements:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
@@ -720,7 +790,7 @@ See the section above on Configuration Files for more information on how to embe
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">param</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0..*</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Repository specific parameters</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Repository-specific parameters.</p></td>
</tr>
</tbody>
</table>
@@ -730,13 +800,11 @@ See the section above on Configuration Files for more information on how to embe
<h2 id="appenders"><a class="anchor" href="#appenders"></a>Appenders</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>Appenders may only be defined as child elements of the <log4net> element.
-Each appender must be uniquely named.
-The implementing type for the appender must be specified.</p>
+<p>Appenders must be defined as child elements of the <code><log4net></code> element.
+Each appender requires a unique name and a specified implementing type.</p>
</div>
<div class="paragraph">
-<p>This example shows an appender of type log4net.Appender.ConsoleAppender being defined.
-The appender will be known as ConsoleAppender.</p>
+<p>The following example defines an appender of type <code>log4net.Appender.ConsoleAppender</code>, named <code>ConsoleAppender</code>.</p>
</div>
<div class="listingblock">
<div class="content">
@@ -748,7 +816,7 @@ The appender will be known as ConsoleAppender.</p>
</div>
</div>
<div class="paragraph">
-<p>The <appender> element supports the following attributes:</p>
+<p>The <code><appender></code> element supports the following attributes:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
@@ -769,19 +837,19 @@ The appender will be known as ConsoleAppender.</p>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Value must be a string name for this appender. The name must be unique among all the appenders defined in this configuration file.</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">This name is used by the <appender-ref> element of a Logger to reference an appender.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">A unique string name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Used by the <code><appender-ref></code> element of a Logger to reference an appender.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">type</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Value must be the type name for this appender.</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">If the appender is not defined in the log4net assembly this type name must be fully assembly qualified.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">A fully qualified type name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">If the appender is not in the log4net assembly, the type name must be fully assembly qualified.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
-<p>The <appender> element supports the following child elements:</p>
+<p>The <code><appender></code> element supports the following child elements:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
@@ -815,20 +883,23 @@ The appender will be known as ConsoleAppender.</p>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">param</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0..*</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Appender specific parameters</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Appender-specific parameters.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
-<p>For examples of configuring appenders see <a href="configuration-examples.html" class="xref page">Example Appender Configuration</a>.</p>
+<p>For examples of configuring appenders see <a href="configuration/examples.html" class="xref page">Example Appender Configuration</a>.</p>
</div>
-<div class="sect2">
-<h3 id="filters"><a class="anchor" href="#filters"></a>Filters</h3>
+</div>
+</div>
+<div class="sect1">
+<h2 id="filters"><a class="anchor" href="#filters"></a>Filters</h2>
+<div class="sectionbody">
<div class="paragraph">
-<p>Filters elements may only be defined as children of <appender> elements.</p>
+<p>Filter elements may only be defined as children of <code><appender></code> elements.</p>
</div>
<div class="paragraph">
-<p>The <filter> element supports the following attributes:</p>
+<p>The <code><filter></code> element supports the following attributes:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
@@ -850,12 +921,12 @@ The appender will be known as ConsoleAppender.</p>
<td class="tableblock halign-left valign-top"><p class="tableblock">type</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value must be the type name for this filter.</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">If the filter is not defined in the log4net assembly this type name must be fully assembly qualified.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">If the filter is not defined in the log4net assembly, this type name must be fully assembly qualified.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
-<p>The <filter> element supports the following child elements:</p>
+<p>The <code><filter></code> element supports the following child elements:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
@@ -874,14 +945,29 @@ The appender will be known as ConsoleAppender.</p>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">param</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0..*</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Filter specific parameters</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Filter-specific parameters.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
-<p>Filters form a chain that the event has to pass through.
-Any filter along the way can accept the event and stop processing, deny the event and stop processing, or allow the event on to the next filter.
-If the event gets to the end of the filter chain without being denied it is implicitly accepted and will be logged.</p>
+<p>Filters form a chain that the event must pass through.
+Each filter can either:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Accept the event and stop processing.</p>
+</li>
+<li>
+<p>Deny the event and stop processing.</p>
+</li>
+<li>
+<p>Pass the event to the next filter.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>If no filter denies the event, it is implicitly accepted and logged.</p>
</div>
<div class="listingblock">
<div class="content">
@@ -892,11 +978,11 @@ If the event gets to the end of the filter chain without being denied it is impl
</div>
</div>
<div class="paragraph">
-<p>This filter will deny events that have a level that is lower than INFO or higher than FATAL.
-All events between INFO and FATAL will be logged.</p>
+<p>This filter denies events with a level lower than INFO or higher than FATAL.
+Only events between INFO and FATAL are logged.</p>
</div>
<div class="paragraph">
-<p>If we want to only allow messages through that have a specific substring (e.g. 'database') then we need to specify the following filters:</p>
+<p>To allow only messages containing a specific substring (e.g., 'database'), the following filters must be specified:</p>
</div>
<div class="listingblock">
<div class="content">
@@ -907,14 +993,17 @@ All events between INFO and FATAL will be logged.</p>
</div>
</div>
<div class="paragraph">
-<p>The first filter will look for the substring 'database' in the message text of the event.
-If the text is found the filter will accept the message and filter processing will stop, the message will be logged.
-If the substring is not found the event will be passed to the next filter to process.
-If there is no next filter the event would be implicitly accepted and would be logged.
-But because we don’t want the non matching events to be logged we need to use a log4net.Filter.DenyAllFilter that will just deny all events that reach it. This filter is only useful at the end of the filter chain.</p>
+<p>The first filter checks if the message text contains the substring 'database'.
+* If found, the filter accepts the message, stops processing, and logs the event.
+* If not found, the event moves to the next filter.</p>
+</div>
+<div class="paragraph">
+<p>If there is no next filter, the event would be implicitly accepted and logged.
+To prevent logging non-matching events, a <code>log4net.Filter.DenyAllFilter</code> must be used at the end of the filter chain.
+This filter ensures that all unmatched events are denied.</p>
</div>
<div class="paragraph">
-<p>If we want to allow events that have either 'database' or 'ldap' in the message text we can use the following filters:</p>
+<p>To allow events containing either 'database' or 'ldap', use the following filters:</p>
</div>
<div class="listingblock">
<div class="content">
@@ -928,13 +1017,15 @@ But because we don’t want the non matching events to be logged we need to
</div>
</div>
</div>
-<div class="sect2">
-<h3 id="layouts"><a class="anchor" href="#layouts"></a>Layouts</h3>
+</div>
+<div class="sect1">
+<h2 id="layouts"><a class="anchor" href="#layouts"></a>Layouts</h2>
+<div class="sectionbody">
<div class="paragraph">
-<p>Layout elements may only be defined as children of <appender> elements.</p>
+<p>Layout elements may only be defined as children of <code><appender></code> elements.</p>
</div>
<div class="paragraph">
-<p>The <layout> element supports the following attributes:</p>
+<p>The <code><layout></code> element supports the following attributes:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
@@ -956,12 +1047,12 @@ But because we don’t want the non matching events to be logged we need to
<td class="tableblock halign-left valign-top"><p class="tableblock">type</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value must be the type name for this layout.</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">If the layout is not defined in the log4net assembly this type name must be fully assembly qualified.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">If the layout is not defined in the log4net assembly, this type name must be fully assembly qualified.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
-<p>The <layout> element supports the following child elements:</p>
+<p>The <code><layout></code> element supports the following child elements:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
@@ -980,12 +1071,12 @@ But because we don’t want the non matching events to be logged we need to
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">param</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0..*</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Layout specific parameters</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Layout-specific parameters.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
-<p>This example shows how to configure a layout that uses the log4net.Layout.PatternLayout.</p>
+<p>This example shows how to configure a layout using <code>log4net.Layout.PatternLayout</code>.</p>
</div>
<div class="listingblock">
<div class="content">
@@ -995,10 +1086,12 @@ But because we don’t want the non matching events to be logged we need to
</div>
</div>
</div>
-<div class="sect2">
-<h3 id="root-logger"><a class="anchor" href="#root-logger"></a>Root Logger</h3>
+</div>
+<div class="sect1">
+<h2 id="root-logger"><a class="anchor" href="#root-logger"></a>Root Logger</h2>
+<div class="sectionbody">
<div class="paragraph">
-<p>Only one root logger element may only be defined and it must be a child of <log4net> element.
+<p>Only one <code>root</code> logger element may be defined, and it must be a child of the <code>log4net</code> element.
The root logger is the root of the logger hierarchy.
All loggers ultimately inherit from this logger.</p>
</div>
@@ -1051,8 +1144,10 @@ All loggers ultimately inherit from this logger.</p>
</tbody>
</table>
</div>
-<div class="sect2">
-<h3 id="loggers"><a class="anchor" href="#loggers"></a>Loggers</h3>
+</div>
+<div class="sect1">
+<h2 id="loggers"><a class="anchor" href="#loggers"></a>Loggers</h2>
+<div class="sectionbody">
<div class="paragraph">
<p>Logger elements may only be defined as children of the <log4net> element.</p>
</div>
@@ -1129,7 +1224,7 @@ All loggers ultimately inherit from this logger.</p>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">level</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0..1</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines the logging level for this logger. This logger will only accept event that are at this level or above.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines the logging level for this logger. This logger will only accept events that are at this level or above.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">param</p></td>
@@ -1139,8 +1234,10 @@ All loggers ultimately inherit from this logger.</p>
</tbody>
</table>
</div>
-<div class="sect2">
-<h3 id="renderers"><a class="anchor" href="#renderers"></a>Renderers</h3>
+</div>
+<div class="sect1">
+<h2 id="renderers"><a class="anchor" href="#renderers"></a>Renderers</h2>
+<div class="sectionbody">
<div class="paragraph">
<p>Renderer elements may only be defined as children of the <log4net> element.</p>
</div>
@@ -1191,8 +1288,10 @@ If the type is not defined in the log4net assembly this type name must be fully
<p>The <renderer> element supports no child elements.</p>
</div>
</div>
-<div class="sect2">
-<h3 id="parameters"><a class="anchor" href="#parameters"></a>Parameters</h3>
+</div>
+<div class="sect1">
+<h2 id="parameters"><a class="anchor" href="#parameters"></a>Parameters</h2>
+<div class="sectionbody">
<div class="paragraph">
<p>Parameter elements may be children of many elements. See the specific elements above for details.</p>
</div>
@@ -1280,8 +1379,10 @@ If the type is not defined in the log4net assembly this type name must be fully
</div>
</div>
</div>
-<div class="sect2">
-<h3 id="extension-parameters"><a class="anchor" href="#extension-parameters"></a>Extension Parameters</h3>
+</div>
+<div class="sect1">
+<h2 id="extension-parameters"><a class="anchor" href="#extension-parameters"></a>Extension Parameters</h2>
+<div class="sectionbody">
<div class="paragraph">
<p>Configuration parameters map directly to writable properties on an object.
The properties available depend on the actual type of the object being configured.</p>
@@ -1290,8 +1391,10 @@ The properties available depend on the actual type of the object being configure
<p>For 3rd party components please see their relevant API reference for details of the properties available.</p>
</div>
</div>
-<div class="sect2">
-<h3 id="compact-parameter-syntax"><a class="anchor" href="#compact-parameter-syntax"></a>Compact Parameter Syntax</h3>
+</div>
+<div class="sect1">
+<h2 id="compact-parameter-syntax"><a class="anchor" href="#compact-parameter-syntax"></a>Compact Parameter Syntax</h2>
+<div class="sectionbody">
<div class="paragraph">
<p>All parameters may alternately be specified using the parameter name as the element name rather than using the param element and name attribute.</p>
</div>
@@ -1317,7 +1420,6 @@ The properties available depend on the actual type of the object being configure
</div>
</div>
</div>
-</div>
</article>
</div>
</main>
diff --git a/log4net-3.1.0/manual/configuration-examples.html b/log4net-3.1.0/manual/configuration/adonetappender.html
similarity index 53%
copy from log4net-3.1.0/manual/configuration-examples.html
copy to log4net-3.1.0/manual/configuration/adonetappender.html
index 60d10d9..eed8ef5 100644
--- a/log4net-3.1.0/manual/configuration-examples.html
+++ b/log4net-3.1.0/manual/configuration/adonetappender.html
@@ -3,13 +3,13 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
- <title>Configuration Examples :: Apache log4net</title>
- <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration-examples.html">
+ <title>AdoNetAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/adonetappender.html">
<meta name="generator" content="Antora 3.2.0-alpha.6">
-<link rel="stylesheet" href="../_/css/site.css">
-<link rel="icon" href="../_/../_images/favicon.ico" type="image/x-icon">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
<!-- `@asciidoctor/tabs` extension styles -->
-<link rel="stylesheet" href="../_/css/vendor/tabs.css">
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
<style>
/* Swap colors of `IMPORTANT` and `WARNING` blocks */
.doc .admonitionblock.important .icon { background-color: #f70; }
@@ -60,48 +60,117 @@
<div class="nav-panel-menu is-active" data-panel="menu">
<nav class="nav-menu">
<button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
- <h3 class="title"><a href="../index.html">Home</a></h3>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
<ul class="nav-list">
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../download.html">Download</a>
+ <a class="nav-link" href="../../download.html">Download</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../development.html">Development</a>
+ <a class="nav-link" href="../../development.html">Development</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
- <a class="nav-link" href="index.html">Manual</a>
+ <a class="nav-link" href="../index.html">Manual</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
- <a class="nav-link" href="appenders.html">Appenders</a>
+ <a class="nav-link" href="../introduction.html">Introduction</a>
</li>
<li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
- <a class="nav-link" href="configuration.html">Configuration</a>
+ <a class="nav-link" href="examples.html">Examples</a>
<ul class="nav-list">
- <li class="nav-item is-current-page" data-depth="3">
- <a class="nav-link" href="configuration-examples.html">Configuration Examples</a>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
</li>
</ul>
</li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
<li class="nav-item" data-depth="2">
- <a class="nav-link" href="filters.html">Filters</a>
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
</li>
<li class="nav-item" data-depth="2">
- <a class="nav-link" href="layouts.html">Layouts</a>
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../features.html">Features</a>
+ <a class="nav-link" href="../../features.html">Features</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../release-notes.html">Release notes</a>
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../release-review.html">Release verification</a>
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
@@ -120,50 +189,72 @@
<main class="article">
<div class="toolbar" role="navigation">
<button class="nav-toggle"></button>
- <a href="../index.html" class="home-link"></a>
+ <a href="../../index.html" class="home-link"></a>
<nav class="breadcrumbs" aria-label="breadcrumbs">
<ul>
- <li><a href="../index.html">Home</a></li>
- <li><a href="index.html">Manual</a></li>
- <li><a href="configuration.html">Configuration</a></li>
- <li><a href="configuration-examples.html">Configuration Examples</a></li>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="adonetappender.html">AdoNetAppender</a></li>
</ul>
</nav>
-<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration-examples.adoc">Edit this Page</a></div>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/adonetappender.adoc">Edit this Page</a></div>
</div>
<div class="content">
<aside class="toc sidebar" data-title="Contents" data-levels="2">
<div class="toc-menu"></div>
</aside>
<article class="doc">
-<h1 class="page">Configuration Examples</h1>
+<h1 class="page">AdoNetAppender</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
-<p>This document presents example configurations for the built-in appenders. These configurations are designed to work with the log4net.Config.XmlConfigurator.</p>
+<p>The <code>AdoNetAppender</code> is used to log events directly to a database table.
+It writes log events in batches (with a default size of 100, controlled by the <code>BufferSize</code> setting).</p>
+</div>
+<div class="paragraph">
+<p>The configuration of <code>AdoNetAppender</code> depends on the database provider you’re using.
+Here are the key configuration elements:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>ConnectionType</code>: Specifies the fully qualified type name for the <code>System.Data.IDbConnection</code> used to connect to the database.</p>
+</li>
+<li>
+<p><code>ConnectionString</code>: The connection string that is specific to the database provider (e.g., SQL Server, MySQL).</p>
+</li>
+<li>
+<p><code>CommandText</code>: Defines the SQL command to execute. This can either be a prepared statement or a stored procedure. In the examples below, a prepared statement is used.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Each parameter in the prepared statement or stored procedure is defined with:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>Name</code>: The name of the parameter.</p>
+</li>
+<li>
+<p><code>DbType</code>: The database type for the parameter.</p>
+</li>
+<li>
+<p><code>Layout</code>: The layout used to render the value for the parameter.</p>
+</li>
+</ul>
</div>
<div class="paragraph">
-<p>These examples are by no means exhaustive configurations for the appenders.</p>
+<p>The following examples illustrate how to configure the <code>AdoNetAppender</code> for different databases.</p>
</div>
</div>
</div>
<div class="sect1">
-<h2 id="adonetappender"><a class="anchor" href="#adonetappender"></a>AdoNetAppender</h2>
+<h2 id="mssqlserver"><a class="anchor" href="#mssqlserver"></a>MS SQL Server</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>The configuration of the AdoNetAppender depends on the provider selected for the target database.</p>
-</div>
-<div class="paragraph">
-<p>The following examples show how to configure the AdoNetAppender to log messages to different databases.
-The events are written in batches of 100 (BufferSize).
-The ConnectionType specifies the fully qualified type name for the System.Data.IDbConnection to use to connect to the database.
-The ConnectionString is database provider specific.
-The CommandText is either a prepared statement or a stored procedure, in this case it is a prepared statement.
-Each parameter to the prepared statement or stored procedure is specified with its name, database type and a layout that renders the value for the parameter.</p>
-</div>
-<div class="sect2">
-<h3 id="mssqlserver"><a class="anchor" href="#mssqlserver"></a>MS SQL Server</h3>
-<div class="paragraph">
<p>The database table definition is:</p>
</div>
<div class="listingblock">
@@ -246,8 +337,10 @@ Each parameter to the prepared statement or stored procedure is specified with i
</div>
</div>
</div>
-<div class="sect2">
-<h3 id="oracle"><a class="anchor" href="#oracle"></a>Oracle</h3>
+</div>
+<div class="sect1">
+<h2 id="oracle"><a class="anchor" href="#oracle"></a>Oracle</h2>
+<div class="sectionbody">
<div class="paragraph">
<p>Please add a package reference for the SqlClient to your .csproj file</p>
</div>
@@ -332,6 +425,113 @@ Each parameter to the prepared statement or stored procedure is specified with i
</div>
</div>
</div>
+<div class="sect1">
+<h2 id="postgresql"><a class="anchor" href="#postgresql"></a>PostgreSQL</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The database table definition is:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-sql hljs" data-lang="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)
+)</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Please add a package reference for the SqlClient to your .csproj file</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"> <PackageReference Include="Npgsql" Version="*" /></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The appender configuration is:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="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></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="other-databases"><a class="anchor" href="#other-databases"></a>Other databases</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>To adapt the provided examples for use with other databases, follow these steps:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Find a NuGet package that provides the necessary ADO.NET provider for your database.</p>
+</li>
+<li>
+<p>Modify the <code>CREATE TABLE</code> script to match the data types used by your database.</p>
+</li>
+<li>
+<p>Update the <code>ConnectionType</code> property in the <code>AdoNetAppender</code> configuration to reference the connection type from the selected NuGet package.</p>
+</li>
+</ul>
+</div>
+</div>
</div>
</article>
</div>
@@ -349,9 +549,9 @@ Each parameter to the prepared statement or stored procedure is specified with i
Other names may be trademarks of their respective owners.
</p>
</footer>
-<script id="site-script" src="../_/js/site.js" data-ui-root-path="../_"></script>
-<script async src="../_/js/vendor/highlight.js"></script>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
<!-- `@asciidoctor/tabs` extension scripts -->
-<script async src="../_/js/vendor/tabs.js"></script>
+<script async src="../../_/js/vendor/tabs.js"></script>
</body>
</html>
diff --git a/log4net-3.1.0/manual/configuration/bufferingforwardingappender.html b/log4net-3.1.0/manual/configuration/bufferingforwardingappender.html
new file mode 100644
index 0000000..7f4a163
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/bufferingforwardingappender.html
@@ -0,0 +1,276 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>BufferingForwardingAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/bufferingforwardingappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="bufferingforwardingappender.html">BufferingForwardingAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/bufferingforwardingappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">BufferingForwardingAppender</h1>
+<div class="paragraph">
+<p>The <code>BufferingForwardingAppender</code> buffers log events in memory before forwarding them to another appender.
+This helps improve performance by reducing the number of writes to the destination appender, especially in high-volume logging scenarios.
+Once the buffer reaches a specified size or time threshold, the events are forwarded to the target appender in a batch.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the <code>BufferingForwardingAppender</code> to buffer 100 messages before delivering them to the <code>ConsoleAppender</code>.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender" >
+ <bufferSize value="100"/>
+ <!--
+ The value configures what gets fixed immediately when calling logger.Log().
+ The default value is All, which may negatively impact performance enough to warrant changing it to fix less data.
+ More information can be found at https://github.com/apache/logging-log4net/blob/master/src/log4net/Core/FixFlags.cs
+ -->
+ <fix value="All"/>
+ <appender-ref ref="ConsoleAppender" />
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example shows how to deliver only significant events.</p>
+</div>
+<div class="paragraph">
+<p>A LevelEvaluator is specified with a threshold of WARN.
+This means that the events will only be delivered when a message with level of WARN or higher level is logged.</p>
+</div>
+<div class="paragraph">
+<p>Up to 512 <code>bufferSize</code> previous messages of any level will also be delivered to provide context information.
+Messages not sent will be discarded.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender" >
+ <bufferSize value="512" />
+ <lossy value="true" />
+ <evaluator type="log4net.Core.LevelEvaluator">
+ <threshold value="WARN"/>
+ </evaluator>
+ <appender-ref ref="ConsoleAppender" />
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/coloredconsoleappender.html b/log4net-3.1.0/manual/configuration/coloredconsoleappender.html
new file mode 100644
index 0000000..8129fb9
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/coloredconsoleappender.html
@@ -0,0 +1,272 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>ColoredConsoleAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/coloredconsoleappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="coloredconsoleappender.html">ColoredConsoleAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/coloredconsoleappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">ColoredConsoleAppender</h1>
+<div class="paragraph">
+<p>The <code>ColoredConsoleAppender</code> writes log messages to the console with color coding based on log levels.
+It allows configurable colors for each log level, making it easier to identify log severity.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the ColoredConsoleAppender to log messages to the console.
+This example shows how to highlight error messages.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
+ <mapping>
+ <level value="ERROR" />
+ <foreColor value="Red, HighIntensity"/>
+ </mapping>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example shows how to colorize multiple levels.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
+ <mapping>
+ <level value="ERROR" />
+ <foreColor value="Red, HighIntensity"/>
+ </mapping>
+ <mapping>
+ <level value="DEBUG" />
+ <foreColor value="LightGray" />
+ </mapping>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/consoleappender.html b/log4net-3.1.0/manual/configuration/consoleappender.html
new file mode 100644
index 0000000..78d4f02
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/consoleappender.html
@@ -0,0 +1,261 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>ConsoleAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/consoleappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="consoleappender.html">ConsoleAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/consoleappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">ConsoleAppender</h1>
+<div class="paragraph">
+<p>The <code>ConsoleAppender</code> writes log messages to the console.
+It outputs messages without color coding, making it simple and suitable for basic logging needs.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the <code>ConsoleAppender</code> to log messages to the console.
+By default the messages are sent to the console standard output stream.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example shows how to direct the log messages to the console error stream.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
+ <target value="Console.Error" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/eventlogappender.html b/log4net-3.1.0/manual/configuration/eventlogappender.html
new file mode 100644
index 0000000..dea292b
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/eventlogappender.html
@@ -0,0 +1,260 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>EventLogAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/eventlogappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="eventlogappender.html">EventLogAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/eventlogappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">EventLogAppender</h1>
+<div class="paragraph">
+<p>The EventLogAppender in log4net logs messages to the Windows Event Log.
+It is limited to .Net 4.x because it is Windows specific and .netstandard lacks support for writing to the Event Log.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the <code>EventLogAppender</code> to log to the Application event log on the local machine using the event Source of the AppDomain.FriendlyName.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example shows how to configure the <code>EventLogAppender</code> to use a specific event Source.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
+ <applicationName value="MyApp" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/examples.html b/log4net-3.1.0/manual/configuration/examples.html
new file mode 100644
index 0000000..127db77
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/examples.html
@@ -0,0 +1,291 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Examples :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/examples.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item is-current-page" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/examples.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">Examples</h1>
+<div class="paragraph">
+<p>This document presents example configurations for the built-in appenders. These configurations are designed to work with the log4net.Config.XmlConfigurator.</p>
+</div>
+<div class="paragraph">
+<p>These examples are by no means exhaustive configurations for the appenders.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="adonetappender.html" class="xref page">AdoNetAppender</a></p>
+</li>
+<li>
+<p><a href="bufferingforwardingappender.html" class="xref page">BufferingForwardingAppender</a></p>
+</li>
+<li>
+<p><a href="coloredconsoleappender.html" class="xref page">ColoredConsoleAppender</a></p>
+</li>
+<li>
+<p><a href="consoleappender.html" class="xref page">ConsoleAppender</a></p>
+</li>
+<li>
+<p><a href="eventlogappender.html" class="xref page">EventLogAppender</a></p>
+</li>
+<li>
+<p><a href="fileappender.html" class="xref page">FileAppender</a></p>
+</li>
+<li>
+<p><a href="rollingfileappender.html" class="xref page">RollingFileAppender</a></p>
+</li>
+<li>
+<p><a href="forwardingappender.html" class="xref page">ForwardingAppender</a></p>
+</li>
+<li>
+<p><a href="localsyslogappender.html" class="xref page">LocalSyslogAppender</a></p>
+</li>
+<li>
+<p><a href="managedcoloredconsoleappender.html" class="xref page">ManagedColoredConsoleAppender</a></p>
+</li>
+<li>
+<p><a href="memoryappender.html" class="xref page">MemoryAppender</a></p>
+</li>
+<li>
+<p><a href="outputdebugstringappender.html" class="xref page">OutputDebugStringAppender</a></p>
+</li>
+<li>
+<p><a href="remotesyslogappender.html" class="xref page">RemoteSyslogAppender</a></p>
+</li>
+<li>
+<p><a href="smtpappender.html" class="xref page">SmtpAppender</a></p>
+</li>
+<li>
+<p><a href="smtppickupdirappender.html" class="xref page">SmtpPickupDirAppender</a></p>
+</li>
+<li>
+<p><a href="traceappender.html" class="xref page">TraceAppender</a></p>
+</li>
+<li>
+<p><a href="udpappender.html" class="xref page">UdpAppender</a></p>
+</li>
+</ul>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/fileappender.html b/log4net-3.1.0/manual/configuration/fileappender.html
new file mode 100644
index 0000000..2e4d89c
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/fileappender.html
@@ -0,0 +1,282 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>FileAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/fileappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="fileappender.html">FileAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/fileappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">FileAppender</h1>
+<div class="paragraph">
+<p>The <code>FileAppender</code> writes log messages to a specified file.
+It can append to existing files or overwrite them, depending on the configuration.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the <code>FileAppender</code> to write messages to a file.
+The file specified is MyApp.log.
+The file will be appended to rather than overwritten each time the logging process starts.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="FileAppender" type="log4net.Appender.FileAppender">
+ <file value="MyApp.log" />
+ <appendToFile value="true" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example shows how to configure the file name to write to using an environment variable TEMP.
+The encoding to use to write to the file is also specified.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="FileAppender" type="log4net.Appender.FileAppender">
+ <file value="${TEMP}/MyApp.log" />
+ <appendToFile value="true" />
+ <encoding value="unicodeFFFE" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example shows how to configure the appender to use the minimal locking model that allows multiple processes to write to the same file.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="FileAppender" type="log4net.Appender.FileAppender">
+ <file value="MyApp.log" />
+ <appendToFile value="true" />
+ <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/forwardingappender.html b/log4net-3.1.0/manual/configuration/forwardingappender.html
new file mode 100644
index 0000000..aab5b18
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/forwardingappender.html
@@ -0,0 +1,250 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>ForwardingAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/forwardingappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="forwardingappender.html">ForwardingAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/forwardingappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">ForwardingAppender</h1>
+<div class="paragraph">
+<p>The <code>ForwardingAppender</code> forwards log messages to another appender.
+This appender is used only in special circumstances.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the <code>ForwardingAppender</code>.
+The forwarding appender allows a set of constraints to be used to decorate an appender.</p>
+</div>
+<div class="paragraph">
+<p>In this example the <code>ConsoleAppender</code> is decorated with a Threshold of level WARN. This means that an event directed to the <code>ConsoleAppender</code> directly will be logged regardless of its level, but an event directed to the <code>ForwardingAppender</code> will only be passed on to the <code>ConsoleAppender</code> if its level is WARN or higher.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="ForwardingAppender" type="log4net.Appender.ForwardingAppender" >
+ <threshold value="WARN"/>
+ <appender-ref ref="ConsoleAppender" />
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/localsyslogappender.html b/log4net-3.1.0/manual/configuration/localsyslogappender.html
new file mode 100644
index 0000000..858c591
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/localsyslogappender.html
@@ -0,0 +1,274 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>LocalSyslogAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/localsyslogappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="localsyslogappender.html">LocalSyslogAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/localsyslogappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">LocalSyslogAppender</h1>
+<div class="paragraph">
+<p><code>LocalSyslogAppender</code> writes messages to the local syslog service on Unix-like operating systems.
+It uses the system’s native syslog daemon and does not support remote logging.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the <code>LocalSyslogAppender</code>.
+It sends all events with Level WARN or higher.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="LocalSyslogAppender" type="log4net.Appender.LocalSyslogAppender">
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date{MM/dd/yyyy HH:mm:ss.fff} [%thread] %-5level %logger - %message%newline" />
+ </layout>
+ <threshold value="WARN" />
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>You can also specify:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Facility (default: user)</p>
+</li>
+<li>
+<p>Identity (default: application name)</p>
+</li>
+</ul>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="LocalSyslogAppender" type="log4net.Appender.LocalSyslogAppender">
+ <facility>Alert</facility>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date{MM/dd/yyyy HH:mm:ss.fff} [%thread] %-5level %logger - %message%newline" />
+ </layout>
+ <identity>MyApp-Canary</identity>
+ <threshold value="WARN" />
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/managedcoloredconsoleappender.html b/log4net-3.1.0/manual/configuration/managedcoloredconsoleappender.html
new file mode 100644
index 0000000..1a61ae2
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/managedcoloredconsoleappender.html
@@ -0,0 +1,284 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>ManagedColoredConsoleAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/managedcoloredconsoleappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/managedcoloredconsoleappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">ManagedColoredConsoleAppender</h1>
+<div class="paragraph">
+<p>The <code>ManagedColoredConsoleAppender</code> writes log messages to the console with colored output.
+It provides more control over the colors used for different log levels.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the <code>ManagedColoredConsoleAppender</code> to log messages to the console.
+By default the messages are sent to the console standard output stream.</p>
+</div>
+<div class="paragraph">
+<p>This example shows how to highlight error messages.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="ManagedColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender">
+ <mapping>
+ <level value="ERROR" />
+ <foreColor value="White" />
+ <backColor value="Red" />
+ </mapping>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example shows how to colorize multiple levels.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="ManagedColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender">
+ <mapping>
+ <level value="ERROR" />
+ <foreColor value="DarkRed" />
+ </mapping>
+ <mapping>
+ <level value="WARN" />
+ <foreColor value="Yellow" />
+ </mapping>
+ <mapping>
+ <level value="INFO" />
+ <foreColor value="White" />
+ </mapping>
+ <mapping>
+ <level value="DEBUG" />
+ <foreColor value="Blue" />
+ </mapping>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date %-5level %logger - %message%newline"/>
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/memoryappender.html b/log4net-3.1.0/manual/configuration/memoryappender.html
new file mode 100644
index 0000000..846586f
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/memoryappender.html
@@ -0,0 +1,245 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>MemoryAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/memoryappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="memoryappender.html">MemoryAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/memoryappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">MemoryAppender</h1>
+<div class="paragraph">
+<p>The <code>MemoryAppender</code> stores log events in memory rather than writing them to a file or console.
+It is useful for in-memory logging and can be configured to store events until the application is stopped or the memory is cleared.</p>
+</div>
+<div class="paragraph">
+<p>It is unlikely that the <code>MemoryAppender</code> will be configured using a config file, but if you want to do it here’s how.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="MemoryAppender" type="log4net.Appender.MemoryAppender">
+ <fix value="Partial" />
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/outputdebugstringappender.html b/log4net-3.1.0/manual/configuration/outputdebugstringappender.html
new file mode 100644
index 0000000..f2faff4
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/outputdebugstringappender.html
@@ -0,0 +1,247 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>OutputDebugStringAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/outputdebugstringappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="outputdebugstringappender.html">OutputDebugStringAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/outputdebugstringappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">OutputDebugStringAppender</h1>
+<div class="paragraph">
+<p>The <code>OutputDebugStringAppender</code> writes log events to the Windows debugger via the <code>OutputDebugString</code> function.
+This is useful for debugging and monitoring an application without writing to files or consoles.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the <code>OutputDebugStringAppender</code> to write logging messages to the <code>OutputDebugString</code> API.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender" >
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/remotesyslogappender.html b/log4net-3.1.0/manual/configuration/remotesyslogappender.html
new file mode 100644
index 0000000..ba45576
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/remotesyslogappender.html
@@ -0,0 +1,315 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>RemoteSyslogAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/remotesyslogappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="remotesyslogappender.html">RemoteSyslogAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/remotesyslogappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">RemoteSyslogAppender</h1>
+<div class="paragraph">
+<p>The <code>RemoteSyslogAppender</code> sends log messages to a remote syslog daemon using the BSD syslog protocol over UDP (default port 514).
+It supports configurable syslog facilities and severity levels, but due to the nature of UDP, messages may be lost or truncated.</p>
+</div>
+<div class="paragraph">
+<p>This appender does not include timestamp or hostname fields, as the receiving syslog daemon adds them automatically.
+It also splits log messages at line breaks, sending each line as a separate syslog message.</p>
+</div>
+<div class="paragraph">
+<p>The following example sends all events with Level WARN or higher to the remote server 192.168.1.100 on the default port with UTF8-Encoding.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="RemoteSyslogAppender" type="log4net.Appender.RemoteSyslogAppender">
+ <encoding>UTF-8</encoding>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date{MM/dd/yyyy HH:mm:ss.fff} [%thread] %-5level %logger - %message%newline" />
+ </layout>
+ <remoteAddress value="192.168.1.100" />
+ <threshold value="WARN" />
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>You can also specify:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Facility (default: user)</p>
+</li>
+<li>
+<p>Identity (default: application name)</p>
+</li>
+</ul>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="RemoteSyslogAppender" type="log4net.Appender.RemoteSyslogAppender">
+ <encoding>UTF-8</encoding>
+ <facility>Alert</facility>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date{MM/dd/yyyy HH:mm:ss.fff} [%thread] %-5level %logger - %message%newline" />
+ </layout>
+ <identity>MyApp-Canary</identity>
+ <remoteAddress value="192.168.1.100" />
+ <threshold value="WARN" />
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>If your log message contains multiple lines, it will be logged as multiple separate syslog entries instead of a single multiline message.</p>
+</div>
+<div class="paragraph">
+<p>This might lead to confusion when analyzing logs because related lines could appear interleaved with logs from other sources.</p>
+</div>
+<div class="paragraph">
+<p>Example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">try
+{
+ throw new InvalidTimeZoneException();
+}
+catch (InvalidTimeZoneException e)
+{
+ logger.Error(e, "setting daylight saving time failed")
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Output (with intermixed messages):</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-log hljs" data-lang="log">12/21/2024 14:07:41.508 [main] ERROR log4net.Tests - setting daylight saving time failed
+Exception of type 'System.InvalidTimeZoneException' was thrown.
+12/21/2024 14:07:41.511 [worker] WARN log4net.Tests - some unrelated log message
+ at log4net.Tests.Appender.RemoteSyslogAppenderTest.LineBreakTest()
+ at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
+ at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)</code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/rollingfileappender.html b/log4net-3.1.0/manual/configuration/rollingfileappender.html
new file mode 100644
index 0000000..259300b
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/rollingfileappender.html
@@ -0,0 +1,339 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>RollingFileAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/rollingfileappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="rollingfileappender.html">RollingFileAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/rollingfileappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">RollingFileAppender</h1>
+<div class="paragraph">
+<p>The <code>RollingFileAppender</code> extends the functionality of the <code>FileAppender</code> by adding the ability to automatically roll over log files based on specified criteria, such as file size or time intervals.</p>
+</div>
+<div class="paragraph">
+<p>This appender is useful for managing log files in production environments where log data grows over time and older logs should be preserved while maintaining a manageable file size.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the <code>RollingFileAppender</code> to write to the file <code>MyApp.log</code>.</p>
+</div>
+<div class="paragraph">
+<p>The file written to will always be named <code>MyApp.log</code> because the <code>StaticLogFileName</code> parameter is specified.</p>
+</div>
+<div class="paragraph">
+<p>The file will be rolled based on a size constraint (<code>RollingStyle</code>), and old log files will be archived when the size limit is reached.
+Up to 10 (<code>MaxSizeRollBackups</code>) old files of 100 KB each (<code>MaximumFileSize</code>) will be kept.</p>
+</div>
+<div class="paragraph">
+<p>These rolled files will be named: <code>MyApp.log.1</code>, <code>MyApp.log.2</code>, <code>MyApp.log.3</code>, etc.</p>
+</div>
+<div class="paragraph">
+<p>This allows you to keep a set number of backup log files, which can be helpful for both auditing and troubleshooting, while ensuring that log file growth doesn’t fill up disk space.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
+ <file value="MyApp.log" />
+ <appendToFile value="true" />
+ <rollingStyle value="Size" />
+ <maxSizeRollBackups value="10" />
+ <maximumFileSize value="100KB" />
+ <staticLogFileName value="true" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example show how to configure the <code>RollingFileAppender</code> to roll log files on a date period.</p>
+</div>
+<div class="paragraph">
+<p>This example will roll the log file every minute.
+To change the rolling period adjust the <code>DatePattern</code> value.
+For example, a date pattern of "yyyyMMdd" will roll every day.</p>
+</div>
+<div class="paragraph">
+<p>See <code>System.Globalization.DateTimeFormatInfo</code> for a list of available patterns.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
+ <file value="MyApp.log" />
+ <appendToFile value="true" />
+ <rollingStyle value="Date" />
+ <datePattern value="yyyyMMdd-HHmm" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example show how to configure the <code>RollingFileAppender</code> to roll log files on a date period and within a date period on file size.</p>
+</div>
+<div class="paragraph">
+<p>For each day only the last 10 files of 1MB will be kept.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
+ <file value="MyApp.log" />
+ <appendToFile value="true" />
+ <rollingStyle value="Composite" />
+ <datePattern value="yyyyMMdd" />
+ <maxSizeRollBackups value="10" />
+ <maximumFileSize value="1MB" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example show how to configure the <code>RollingFileAppender</code> to roll log files once per program execution.</p>
+</div>
+<div class="paragraph">
+<p>The <code>appendToFile</code> property is set to false to prevent the appender from overwriting the existing files.</p>
+</div>
+<div class="paragraph">
+<p>The <code>maxSizeRollBackups</code> is set to negative 1 to allow an infinite number of backup files.</p>
+</div>
+<div class="paragraph">
+<p>The file size does have to be limited but here it is set to 50 Gigabytes which, if a log file exceeds this size limit during a single run then it will also be rolled.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
+ <file value="MyApp.log" />
+ <appendToFile value="false" />
+ <rollingStyle value="Size" />
+ <maxSizeRollBackups value="-1" />
+ <maximumFileSize value="50GB" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/smtpappender.html b/log4net-3.1.0/manual/configuration/smtpappender.html
new file mode 100644
index 0000000..4208c21
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/smtpappender.html
@@ -0,0 +1,305 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>SmtpAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/smtpappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="smtpappender.html">SmtpAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/smtpappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">SmtpAppender</h1>
+<div class="paragraph">
+<p>The <code>SmtpAppender</code> sends log events via email using the Simple Mail Transfer Protocol (SMTP).
+This appender is useful for sending email notifications when certain events occur, such as errors or critical failures in your application.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the <code>SmtpAppender</code> to deliver log events via SMTP email.
+The <code>To</code>, <code>From</code>, <code>Subject</code> and <code>SmtpHost</code> are required parameters.
+This example shows how to deliver only significant events.</p>
+</div>
+<div class="paragraph">
+<p>A LevelEvaluator is specified with a threshold of WARN.
+This means that an email will be sent for each WARN or higher level message that is logged.
+Each email will also contain up to 512 (BufferSize) previous messages of any level to provide context.</p>
+</div>
+<div class="paragraph">
+<p>Messages not sent will be discarded.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
+ <to value="to@example.com" />
+ <from value="from@example.com" />
+ <subject value="test logging message" />
+ <smtpHost value="smtp.example.com" />
+ <bufferSize value="512" />
+ <lossy value="true" />
+ <evaluator type="log4net.Core.LevelEvaluator">
+ <threshold value="WARN"/>
+ </evaluator>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%newline%date [%thread] %-5level %logger - %message%newline%newline%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example shows how to configure the <code>SmtpAppender</code> to deliver all messages in emails with 512 <code>bufferSize</code> messages per email.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
+ <to value="to@example.com" />
+ <from value="from@example.com" />
+ <subject value="test logging message" />
+ <smtpHost value="smtp.example.com" />
+ <bufferSize value="512" />
+ <lossy value="false" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%newline%date [%thread] %-5level %logger - %message%newline%newline%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example shows a more verbose formatting layout for the mail messages.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="SmtpAppender" type="log4net.Appender.SmtpAppender,log4net">
+ <to value="to@example.com" />
+ <from value="from@example.com" />
+ <subject value="test logging message" />
+ <smtpHost value="smtp.example.com" />
+ <bufferSize value="512" />
+ <lossy value="false" />
+ <evaluator type="log4net.Core.LevelEvaluator,log4net">
+ <threshold value="WARN" />
+ </evaluator>
+ <layout type="log4net.Layout.PatternLayout,log4net">
+ <conversionPattern value="%property{log4net:HostName} :: %level :: %message %newlineLogger: %logger%newlineThread: %thread%newlineDate: %date%newline%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/smtppickupdirappender.html b/log4net-3.1.0/manual/configuration/smtppickupdirappender.html
new file mode 100644
index 0000000..1c6b5f4
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/smtppickupdirappender.html
@@ -0,0 +1,272 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>SmtpPickupDirAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/smtppickupdirappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article adoc">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="smtppickupdirappender.html">SmtpPickupDirAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/smtppickupdirappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">SmtpPickupDirAppender</h1>
+<div class="paragraph">
+<p>The <code>SmtpPickupDirAppender</code> is configured similarly to the <a href="smtpappender.html" class="xref page">SmtpAppender</a>.
+The only difference is that rather than specify a SmtpHost parameter a <code>PickupDir</code> must be specified.</p>
+</div>
+<div class="paragraph">
+<p>The <code>PickupDir</code> parameter is a path that must exist and the code executing the appender must have permission to create new files and write to them in this directory.
+The path is relative to the application’s base directory (AppDomain.BaseDirectory).</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the SmtpPickupDirAppender to deliver log events via SMTP email.
+The <code>To</code>, <code>From</code>, <code>Subject</code> and <code>PickupDir</code> are required parameters.
+This example shows how to deliver only significant events.</p>
+</div>
+<div class="paragraph">
+<p>A LevelEvaluator is specified with a threshold of WARN.
+This means that an email will be sent for each WARN or higher level message that is logged.</p>
+</div>
+<div class="paragraph">
+<p>Each email will also contain up to 512 (BufferSize) previous messages of any level to provide context.</p>
+</div>
+<div class="paragraph">
+<p>Messages not sent will be discarded.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="SmtpPickupDirAppender" type="log4net.Appender.SmtpPickupDirAppender">
+ <to value="to@example.com" />
+ <from value="from@example.com" />
+ <subject value="test logging message" />
+ <pickupDir value="C:\SmtpPickup" />
+ <bufferSize value="512" />
+ <lossy value="true" />
+ <evaluator type="log4net.Core.LevelEvaluator">
+ <threshold value="WARN"/>
+ </evaluator>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%newline%date [%thread] %-5level %logger - %message%newline%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/traceappender.html b/log4net-3.1.0/manual/configuration/traceappender.html
new file mode 100644
index 0000000..439fe13
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/traceappender.html
@@ -0,0 +1,247 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>TraceAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/traceappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="traceappender.html">TraceAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/traceappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">TraceAppender</h1>
+<div class="paragraph">
+<p>The <code>TraceAppender</code> writes log events to the Trace output, which can be viewed in debuggers or other trace listeners.
+It is useful for capturing logs in applications that are being debugged or for monitoring trace-level information during runtime.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the <code>TraceAppender</code> to log messages to the <a href="https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.trace">System.Diagnostics.Trace</a> system.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="TraceAppender" type="log4net.Appender.TraceAppender">
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/configuration/udpappender.html b/log4net-3.1.0/manual/configuration/udpappender.html
new file mode 100644
index 0000000..5e6040c
--- /dev/null
+++ b/log4net-3.1.0/manual/configuration/udpappender.html
@@ -0,0 +1,250 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>UdpAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration/udpappender.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="4">
+ <a class="nav-link" href="udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="../index.html">Manual</a></li>
+ <li><a href="../configuration.html">Configuration</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="udpappender.html">UdpAppender</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration/udpappender.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">UdpAppender</h1>
+<div class="paragraph">
+<p>The <code>UdpAppender</code> sends log events over the network using the UDP protocol.
+It is typically used to forward log messages to remote logging systems over a network.</p>
+</div>
+<div class="paragraph">
+<p>The following example shows how to configure the <code>UdpAppender</code> to send events to a <code>remoteAddress</code> on the specified <code>remotePort</code>.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="UdpAppender" type="log4net.Appender.UdpAppender">
+ <localPort value="8080" />
+ <remoteAddress value="224.0.0.1" />
+ <remotePort value="8080" />
+ <layout type="log4net.Layout.PatternLayout, log4net">
+ <conversionPattern value="%-5level %logger - %message%newline" />
+ </layout>
+</appender></code></pre>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/filters.html b/log4net-3.1.0/manual/examples.html
similarity index 64%
copy from log4net-3.1.0/manual/filters.html
copy to log4net-3.1.0/manual/examples.html
index bbee752..d36d721 100644
--- a/log4net-3.1.0/manual/filters.html
+++ b/log4net-3.1.0/manual/examples.html
@@ -3,8 +3,8 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
- <title>Filters :: Apache log4net</title>
- <link rel="canonical" href="https://logging.apache.org/log4net/manual/filters.html">
+ <title>Examples :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/examples.html">
<meta name="generator" content="Antora 3.2.0-alpha.6">
<link rel="stylesheet" href="../_/css/site.css">
<link rel="icon" href="../_/../_images/favicon.ico" type="image/x-icon">
@@ -74,6 +74,9 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="index.html">Manual</a>
<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="introduction.html">Introduction</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="appenders.html">Appenders</a>
</li>
@@ -82,16 +85,82 @@
<a class="nav-link" href="configuration.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
- <a class="nav-link" href="configuration-examples.html">Configuration Examples</a>
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/udpappender.html">UdpAppender</a>
+ </li>
+</ul>
</li>
</ul>
</li>
<li class="nav-item is-current-page" data-depth="2">
+ <a class="nav-link" href="examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
<a class="nav-link" href="filters.html">Filters</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="layouts.html">Layouts</a>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="supported-frameworks.html">Supported Frameworks</a>
+ </li>
</ul>
</li>
<li class="nav-item" data-depth="1">
@@ -125,85 +194,19 @@
<ul>
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Manual</a></li>
- <li><a href="filters.html">Filters</a></li>
+ <li><a href="examples.html">Examples</a></li>
</ul>
</nav>
-<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/filters.adoc">Edit this Page</a></div>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/examples.adoc">Edit this Page</a></div>
</div>
<div class="content">
<aside class="toc sidebar" data-title="Contents" data-levels="2">
<div class="toc-menu"></div>
</aside>
<article class="doc">
-<h1 class="page">Filters</h1>
+<h1 class="page">Examples</h1>
<div class="paragraph">
-<p>Filters are log4net plugins that evaluate the parameters of a logging call or a log event and return one of three results:</p>
-</div>
-<div class="dlist">
-<dl>
-<dt class="hdlist1">ACCEPT</dt>
-<dd>
-<p>The filter accepts the log event.
-This effectively causes other filters in the same filtering stage to be skipped.</p>
-</dd>
-<dt class="hdlist1">DENY</dt>
-<dd>
-<p>The filter drops the log event.</p>
-</dd>
-<dt class="hdlist1">NEUTRAL</dt>
-<dd>
-<p>log4net behaves as if the filter was not present.
-It is evaluated by the next filter in the filter chain.</p>
-</dd>
-</dl>
-</div>
-<div class="paragraph">
-<p>Any filter along the way can accept the event and stop processing, deny the event and stop processing, or allow the event on to the next filter.
-If the event gets to the end of the filter chain without being denied it is implicitly accepted and will be logged.</p>
-</div>
-<div class="paragraph">
-<p>This filter will deny events that have a level that is lower than INFO or higher than FATAL. All events between INFO and FATAL will be logged.</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><filter type="log4net.Filter.LevelRangeFilter">
- <levelMin value="INFO" />
- <levelMax value="FATAL" />
-</filter></code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>If we want to only allow messages through that have a specific substring (e.g. 'database') then we need to specify the following filters:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><filter type="log4net.Filter.StringMatchFilter">
- <stringToMatch value="database" />
-</filter>
-<filter type="log4net.Filter.DenyAllFilter" /></code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>The first filter will look for the substring 'database' in the message text of the event.
-If the text is found the filter will accept the message and filter processing will stop, the message will be logged.
-If the substring is not found the event will be passed to the next filter to process.
-If there is no next filter the event would be implicitly accepted and would be logged.
-But because we don’t want the non matching events to be logged we need to use a log4net.Filter.DenyAllFilter that will just deny all events that reach it.
-This filter is only useful at the end of the filter chain.</p>
-</div>
-<div class="paragraph">
-<p>If we want to allow events that have either 'database' or 'ldap' in the message text we can use the following filters:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><filter type="log4net.Filter.StringMatchFilter">
- <stringToMatch value="database"/>
-</filter>
-<filter type="log4net.Filter.StringMatchFilter">
- <stringToMatch value="ldap"/>
-</filter>
-<filter type="log4net.Filter.DenyAllFilter" /></code></pre>
-</div>
+<p>The examples can be found at <a href="https://github.com/apache/logging-log4net/tree/master/examples">examples</a></p>
</div>
</article>
</div>
diff --git a/log4net-3.1.0/manual/configuration-examples.html b/log4net-3.1.0/manual/examples/adonetappender.html
similarity index 58%
copy from log4net-3.1.0/manual/configuration-examples.html
copy to log4net-3.1.0/manual/examples/adonetappender.html
index 60d10d9..1202e79 100644
--- a/log4net-3.1.0/manual/configuration-examples.html
+++ b/log4net-3.1.0/manual/examples/adonetappender.html
@@ -3,13 +3,13 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
- <title>Configuration Examples :: Apache log4net</title>
- <link rel="canonical" href="https://logging.apache.org/log4net/manual/configuration-examples.html">
+ <title>AdoNetAppender :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/examples/adonetappender.html">
<meta name="generator" content="Antora 3.2.0-alpha.6">
-<link rel="stylesheet" href="../_/css/site.css">
-<link rel="icon" href="../_/../_images/favicon.ico" type="image/x-icon">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
<!-- `@asciidoctor/tabs` extension styles -->
-<link rel="stylesheet" href="../_/css/vendor/tabs.css">
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
<style>
/* Swap colors of `IMPORTANT` and `WARNING` blocks */
.doc .admonitionblock.important .icon { background-color: #f70; }
@@ -60,48 +60,117 @@
<div class="nav-panel-menu is-active" data-panel="menu">
<nav class="nav-menu">
<button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
- <h3 class="title"><a href="../index.html">Home</a></h3>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
<ul class="nav-list">
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../download.html">Download</a>
+ <a class="nav-link" href="../../download.html">Download</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../development.html">Development</a>
+ <a class="nav-link" href="../../development.html">Development</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
- <a class="nav-link" href="index.html">Manual</a>
+ <a class="nav-link" href="../index.html">Manual</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
- <a class="nav-link" href="appenders.html">Appenders</a>
+ <a class="nav-link" href="../introduction.html">Introduction</a>
</li>
<li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
- <a class="nav-link" href="configuration.html">Configuration</a>
+ <a class="nav-link" href="../configuration/examples.html">Examples</a>
<ul class="nav-list">
- <li class="nav-item is-current-page" data-depth="3">
- <a class="nav-link" href="configuration-examples.html">Configuration Examples</a>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/udpappender.html">UdpAppender</a>
</li>
</ul>
</li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
<li class="nav-item" data-depth="2">
- <a class="nav-link" href="filters.html">Filters</a>
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
</li>
<li class="nav-item" data-depth="2">
- <a class="nav-link" href="layouts.html">Layouts</a>
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../features.html">Features</a>
+ <a class="nav-link" href="../../features.html">Features</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../release-notes.html">Release notes</a>
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../release-review.html">Release verification</a>
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
@@ -120,37 +189,24 @@
<main class="article">
<div class="toolbar" role="navigation">
<button class="nav-toggle"></button>
- <a href="../index.html" class="home-link"></a>
+ <a href="../../index.html" class="home-link"></a>
<nav class="breadcrumbs" aria-label="breadcrumbs">
<ul>
- <li><a href="../index.html">Home</a></li>
- <li><a href="index.html">Manual</a></li>
- <li><a href="configuration.html">Configuration</a></li>
- <li><a href="configuration-examples.html">Configuration Examples</a></li>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="adonetappender.html">AdoNetAppender</a></li>
</ul>
</nav>
-<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/configuration-examples.adoc">Edit this Page</a></div>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/examples/adonetappender.adoc">Edit this Page</a></div>
</div>
<div class="content">
<aside class="toc sidebar" data-title="Contents" data-levels="2">
<div class="toc-menu"></div>
</aside>
<article class="doc">
-<h1 class="page">Configuration Examples</h1>
+<h1 class="page">AdoNetAppender</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
-<p>This document presents example configurations for the built-in appenders. These configurations are designed to work with the log4net.Config.XmlConfigurator.</p>
-</div>
-<div class="paragraph">
-<p>These examples are by no means exhaustive configurations for the appenders.</p>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="adonetappender"><a class="anchor" href="#adonetappender"></a>AdoNetAppender</h2>
-<div class="sectionbody">
-<div class="paragraph">
<p>The configuration of the AdoNetAppender depends on the provider selected for the target database.</p>
</div>
<div class="paragraph">
@@ -161,8 +217,11 @@ The ConnectionString is database provider specific.
The CommandText is either a prepared statement or a stored procedure, in this case it is a prepared statement.
Each parameter to the prepared statement or stored procedure is specified with its name, database type and a layout that renders the value for the parameter.</p>
</div>
-<div class="sect2">
-<h3 id="mssqlserver"><a class="anchor" href="#mssqlserver"></a>MS SQL Server</h3>
+</div>
+</div>
+<div class="sect1">
+<h2 id="mssqlserver"><a class="anchor" href="#mssqlserver"></a>MS SQL Server</h2>
+<div class="sectionbody">
<div class="paragraph">
<p>The database table definition is:</p>
</div>
@@ -246,8 +305,10 @@ Each parameter to the prepared statement or stored procedure is specified with i
</div>
</div>
</div>
-<div class="sect2">
-<h3 id="oracle"><a class="anchor" href="#oracle"></a>Oracle</h3>
+</div>
+<div class="sect1">
+<h2 id="oracle"><a class="anchor" href="#oracle"></a>Oracle</h2>
+<div class="sectionbody">
<div class="paragraph">
<p>Please add a package reference for the SqlClient to your .csproj file</p>
</div>
@@ -332,6 +393,113 @@ Each parameter to the prepared statement or stored procedure is specified with i
</div>
</div>
</div>
+<div class="sect1">
+<h2 id="postgresql"><a class="anchor" href="#postgresql"></a>PostgreSQL</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The database table definition is:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-sql hljs" data-lang="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)
+)</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Please add a package reference for the SqlClient to your .csproj file</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"> <PackageReference Include="Npgsql" Version="*" /></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The appender configuration is:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="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></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="other-databases"><a class="anchor" href="#other-databases"></a>Other databases</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You can adjust the provided examples to other databases by</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>find a nuget package for connecting via ado.net</p>
+</li>
+<li>
+<p>adjust the create table script (tweaking the used data types)</p>
+</li>
+<li>
+<p>adjust the connectionType-Property in AdoNetAppender config to the connection type from the nuget package</p>
+</li>
+</ul>
+</div>
+</div>
</div>
</article>
</div>
@@ -349,9 +517,9 @@ Each parameter to the prepared statement or stored procedure is specified with i
Other names may be trademarks of their respective owners.
</p>
</footer>
-<script id="site-script" src="../_/js/site.js" data-ui-root-path="../_"></script>
-<script async src="../_/js/vendor/highlight.js"></script>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
<!-- `@asciidoctor/tabs` extension scripts -->
-<script async src="../_/js/vendor/tabs.js"></script>
+<script async src="../../_/js/vendor/tabs.js"></script>
</body>
</html>
diff --git a/log4net-3.1.0/manual/examples/examples.html b/log4net-3.1.0/manual/examples/examples.html
new file mode 100644
index 0000000..f2795c4
--- /dev/null
+++ b/log4net-3.1.0/manual/examples/examples.html
@@ -0,0 +1,241 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Examples :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/examples/examples.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../../_/css/site.css">
+<link rel="icon" href="../../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="../configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="../configuration/udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="../supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../../index.html">Home</a></li>
+ <li><a href="examples.html">Examples</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/examples/examples.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">Examples</h1>
+<div class="paragraph">
+<p>This document presents example configurations for the built-in appenders. These configurations are designed to work with the log4net.Config.XmlConfigurator.</p>
+</div>
+<div class="paragraph">
+<p>These examples are by no means exhaustive configurations for the appenders.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="adonetappender.html" class="xref page">AdoNetAppender</a></p>
+</li>
+</ul>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../../_/js/site.js" data-ui-root-path="../../_"></script>
+<script async src="../../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/faq.html b/log4net-3.1.0/manual/faq.html
new file mode 100644
index 0000000..5027322
--- /dev/null
+++ b/log4net-3.1.0/manual/faq.html
@@ -0,0 +1,676 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>F.A.Q. :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/faq.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../_/css/site.css">
+<link rel="icon" href="../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="examples.html">Examples</a>
+ </li>
+ <li class="nav-item is-current-page" data-depth="2">
+ <a class="nav-link" href="faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../index.html">Home</a></li>
+ <li><a href="index.html">Manual</a></li>
+ <li><a href="faq.html">F.A.Q.</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/faq.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">F.A.Q.</h1>
+<div class="sect1">
+<h2 id="setup-and-usage"><a class="anchor" href="#setup-and-usage"></a>Setup & Usage</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="what-is-log4net"><a class="anchor" href="#what-is-log4net"></a>What is log4net?</h3>
+<div class="paragraph">
+<p>log4net is a logging library that supports multiple output targets.</p>
+</div>
+<div class="paragraph">
+<p>It helps diagnose issues by enabling logging without modifying the application binary.
+Designed for minimal performance impact, log4net allows log statements to remain in production code.</p>
+</div>
+<div class="paragraph">
+<p>A key feature is hierarchical loggers, which enable fine-grained control over log output to prevent excessive logging.
+log4net is built for both speed and flexibility.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="prerequisites"><a class="anchor" href="#prerequisites"></a>What are the prerequisites for log4net?</h3>
+<div class="paragraph">
+<p>log4net runs on net462 or higher and any framework supporting netstandard2.0.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="examples"><a class="anchor" href="#examples"></a>Are there examples for using log4net?</h3>
+<div class="paragraph">
+<p>The examples can be found at <a href="https://github.com/apache/logging-log4net/tree/master/examples">examples</a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="features"><a class="anchor" href="#features"></a>What are the features of log4net?</h3>
+<div class="paragraph">
+<p>See the <a href="../features.html" class="xref page">Features</a> document.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="thread-safety"><a class="anchor" href="#thread-safety"></a>Is log4net thread-safe?</h3>
+<div class="paragraph">
+<p>Yes, log4net is thread-safe.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="output"><a class="anchor" href="#output"></a>What does log output look like?</h3>
+<div class="paragraph">
+<p>The log output can be customized in many ways.
+One can completely override the output format by implementing a custom Layout</p>
+</div>
+<div class="paragraph">
+<p>Here is an example output using PatternLayout with the conversion pattern</p>
+</div>
+<div class="paragraph">
+<p>"%date [%thread] %-5level %logger - %message%newline"</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text">2024-12-21 14:07:41,517 [main] DEBUG Animals.Carnivora.Dog - Woof!
+2024-12-21 14:07:41,517 [main] WARN Animals.Carnivora.Dog - Meow!</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The first field is the date and time of the log event.
+The second field is the thread outputting the log statement.
+The third field is the level of the log statement.
+The fourth field is the name of the logger making the log request.
+The text after the '-' is the message of the statement.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="loggers"><a class="anchor" href="#loggers"></a>What are Loggers?</h3>
+<div class="paragraph">
+<p>Loggers are central to log4net’s configuration.</p>
+</div>
+<div class="paragraph">
+<p>They are organized in a hierarchy and allow runtime control over which log statements are printed.</p>
+</div>
+<div class="paragraph">
+<p>Loggers inherit their levels from log4net’s configuration.
+Whether a log statement reaches an appender depends on its level and associated logger.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="contributing"><a class="anchor" href="#contributing"></a>What should I keep in mind when contributing code?</h3>
+<div class="paragraph">
+<p>See <a href="https://github.com/apache/logging-log4net/blob/master/doc/CONTRIBUTING.md">contributing</a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="distribution"><a class="anchor" href="#distribution"></a>Where can I find the latest distribution of log4net?</h3>
+<div class="paragraph">
+<p>See the <a href="installation.html" class="xref page">Installation</a> or <a href="../download.html" class="xref page">Download</a>.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="disable-looging"><a class="anchor" href="#disable-looging"></a>How do I completely disable all logging at runtime?</h3>
+<div class="paragraph">
+<p>Setting the Threshold on the Hierarchy to Level OFF will disable all logging from that Hierarchy.
+This can be done in the log4net configuration file by setting the "threshold" attribute on the log4net configuration element to "OFF".</p>
+</div>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><log4net threshold="OFF" /></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="options-for-appenders"><a class="anchor" href="#options-for-appenders"></a>What are the configurable options for an appender?</h3>
+<div class="paragraph">
+<p>log4net uses public properties to configure components such as Appenders, Layouts, Loggers etc.</p>
+</div>
+<div class="paragraph">
+<p>Thus, any writable public property in on the appender corresponds to a configurable option.
+For example, in RollingFileAppender the</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">public int MaxSizeRollBackups { set; }</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>property corresponds to the MaxSizeRollBackups option.</p>
+</div>
+<div class="paragraph">
+<p>Layouts options are also defined by their writable properties.
+Same goes for most other log4net components.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="direct-output-per-level"><a class="anchor" href="#direct-output-per-level"></a>Is it possible to direct log output to different appenders by level?</h3>
+<div class="paragraph">
+<p>Yes, it is.</p>
+</div>
+<div class="paragraph">
+<p>Each appender has a Threshold option that filters out log events below a specified level.</p>
+</div>
+<div class="paragraph">
+<p>For example, setting an appender’s threshold to DEBUG allows all higher levels (INFO, WARN, ERROR, FATAL) to pass through. This is useful since DEBUG messages are rarely helpful without surrounding context.</p>
+</div>
+<div class="paragraph">
+<p>On the other hand, setting the threshold to ERROR will exclude DEBUG, INFO, and WARN messages while keeping ERROR and FATAL.</p>
+</div>
+<div class="paragraph">
+<p>If you need to log only a specific level, use a LevelMatchFilter to ensure only events of that exact level are recorded.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="automatic-config-reload"><a class="anchor" href="#automatic-config-reload"></a>Is there a way to get log4net to automatically reload a configuration file if it changes?</h3>
+<div class="paragraph">
+<p>Yes.
+The XmlConfigurator supports automatic reloading using the ConfigureAndWatch APIs.
+Refer to the API documentation for details.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="custom-assemblies"><a class="anchor" href="#custom-assemblies"></a>Can I load an appender from another assembly?</h3>
+<div class="paragraph">
+<p>Yes.
+When specifying the type in the configuration file you can give the assembly qualified name of the type.
+For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="..." type="MyNamespace.MyAppender, MyAssembly"></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The runtime will try to locate the assembly called MyAssembly.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="newline-in-header"><a class="anchor" href="#newline-in-header"></a>How do I insert newlines into the layout header?</h3>
+<div class="paragraph">
+<p>To insert newlines in a layout header, use an XML numeric character reference.</p>
+</div>
+<div class="paragraph">
+<p>A carriage return and line feed (CR LF) are represented as &#13;&#10;.</p>
+</div>
+<div class="paragraph">
+<p>For example, to add a header and footer with newlines in the output, use this sequence in the configuration.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><layout type="log4net.Layout.PatternLayout">
+ <header value="[Header]&#13;&#10;" />
+ <footer value="[Footer]&#13;&#10;" />
+ <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
+</layout></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="dynamic-patterns"><a class="anchor" href="#dynamic-patterns"></a>How do I use a pattern to set the value of a string property?</h3>
+<div class="paragraph">
+<p>Log4net allows using pattern syntax to set string properties, similar to PatternLayout for formatting output.</p>
+</div>
+<div class="paragraph">
+<p>To enable this, set type="log4net.Util.PatternString" on the string property in the config file. This directs the parser to process the value using PatternString before converting it to a string.</p>
+</div>
+<div class="paragraph">
+<p>For example, to include the current process ID in a FileAppender filename, use the %processid pattern in the File property.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><appender name="LogFileAppender" type="log4net.Appender.FileAppender">
+ <file type="log4net.Util.PatternString" value="log-file-[%processid].txt" />
+ <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" />
+</appender></code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="implementation"><a class="anchor" href="#implementation"></a>Implementing Logging</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="naming-loggers"><a class="anchor" href="#naming-loggers"></a>What is the suggested ways to name loggers?</h3>
+<div class="paragraph">
+<p>A common approach is to name loggers by locality, using the fully qualified class name. This has several benefits:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Simple to implement and explain to new developers.</p>
+</li>
+<li>
+<p>Reflects the application’s modular design.</p>
+</li>
+<li>
+<p>Can be refined as needed.</p>
+</li>
+<li>
+<p>Automatically provides context for log statements.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="getting-the-type"><a class="anchor" href="#getting-the-type"></a>How do I get the type of a class in a static block?</h3>
+<div class="paragraph">
+<p>To retrieve the type use:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">private static readonly ILog log = LogManager.GetLogger(typeof(Foo));</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Here, typeof(Foo) provides the type, and LogManager.GetLogger accepts a Type instance, which is commonly used.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="performance"><a class="anchor" href="#performance"></a>What is the fastest way to (not) log?</h3>
+<div class="paragraph">
+<p>Concatenating strings in log statements, such as:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">log.Debug("Entry number: " + i + " is " + entry[i]);
+// or string interpolation
+log.Debug($"Entry number: {i} is {entry[i]}");</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>incurs the cost of constructing the message, including converting values to strings and concatenating them—regardless of whether the message is logged.</p>
+</div>
+<div class="paragraph">
+<p>A more efficient alternative is to use log.DebugFormat etc., which formats the message only if the log level is enabled:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">log.DebugFormat("Entry number: {0} is {1}", i, entry[i]);</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Alternatively, check if logging is enabled before constructing the message:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">if (log.IsDebugEnabled)
+{
+ log.Debug($"Entry number: {i} is {entry[i]}");
+}</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="locking-models"><a class="anchor" href="#locking-models"></a>How do I get multiple process to log to the same file?</h3>
+<div class="paragraph">
+<p>Before proceeding, consider if it’s absolutely necessary to have multiple processes log to the same file — it’s often better to avoid this.</p>
+</div>
+<div class="paragraph">
+<p>FileAppender offers different locking models, but they have limitations:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>Default</strong> - Holds an exclusive write lock, preventing other processes from writing.</p>
+</li>
+<li>
+<p><strong>MinimalLock</strong> - Acquires the write lock only while logging, allowing interleaved writes but with significant performance loss.</p>
+</li>
+<li>
+<p><strong>InterProcessLock</strong> - Uses a system-wide Mutex to synchronize, but requires all processes to cooperate.
+While better than MinimalLock, it still causes performance issues due to frequent Mutex acquisition.</p>
+</li>
+<li>
+<p><strong>NoLock</strong> - Does not use any lock, allowing all processes to write simultaneously.
+However, this can lead to log data corruption if multiple processes write to the file at the same time.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Using RollingFileAppender complicates things further, as multiple processes may try to roll the log file simultaneously, which is incompatible with any locking model.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="troubleshooting"><a class="anchor" href="#troubleshooting"></a>Troubleshooting</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="internal-debugging"><a class="anchor" href="#internal-debugging"></a>How do I enable log4net internal debugging?</h3>
+<div class="paragraph">
+<p>There are two ways to enable internal debugging in log4net:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>Via the Application Config File</strong> (Preferred):</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Set the <code>log4net.Internal.Debug</code> option to <code>true</code> in the application’s config file (not the log4net configuration file).</p>
+</div>
+<div class="paragraph">
+<p>Example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><configuration>
+ <appSettings>
+ <add key="log4net.Internal.Debug" value="true"/>
+ </appSettings>
+</configuration></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This setting is read on startup, and all internal debugging messages are emitted.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>Programmatically</strong>:</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Set <code>log4net.Util.LogLog.InternalDebugging</code> to <code>true</code> in code as early as possible to capture the most debug information.</p>
+</div>
+<div class="paragraph">
+<p>Internal debug messages are written to the console and <code>System.Diagnostics.Trace</code>.
+If there’s no console, messages are lost unless redirected.
+You can capture these messages using a utility like DebugView from <a href="http://www.sysinternals.com">Sysinternals</a>.</p>
+</div>
+<div class="paragraph">
+<p>To redirect debug messages to a file, add a trace listener in the config file:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><configuration>
+ <system.diagnostics>
+ <trace autoflush="true">
+ <listeners>
+ <add name="textWriterTraceListener"
+ type="System.Diagnostics.TextWriterTraceListener"
+ initializeData="log4net.log" />
+ </listeners>
+ </trace>
+ </system.diagnostics>
+</configuration></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p><strong>Ensure the process has write permissions to the specified file.</strong></p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="configuration-errors"><a class="anchor" href="#configuration-errors"></a>How can I evaluate configuration errors at runtime?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>To prevent silent failures, log4net provides a way to evaluate whether it was properly configured and to check for any messages generated during startup.</p>
+</div>
+<div class="paragraph">
+<p>To check if log4net has been configured correctly, you can check the <code>Configured</code> property of the <code>ILoggerRepository</code> and enumerate the configuration messages as follows:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">if (!log4net.LogManager.GetRepository().Configured) // log4net is not configured
+{
+ foreach (log4net.Util.LogLog message in log4net.LogManager.GetRepository().ConfigurationMessages.Cast<log4net.Util.LogLog>())
+ {
+ // Evaluate configuration message
+ }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This allows you to catch any configuration issues and review them at runtime.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="logging-from-services"><a class="anchor" href="#logging-from-services"></a>Why doesn’t the logging in my service work?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A Windows service runs under a user account specified in the Services control panel.
+This account may have restricted permissions, so ensure that the account has permission to create and write files in the logging directory.</p>
+</div>
+<div class="paragraph">
+<p>Additionally, when a Windows service is launched, its current directory is set to the Windows system directory (e.g., <code>C:\Windows\System32</code>).
+If you are loading the configuration file from the current directory, keep in mind that this path won’t be the location of your assemblies.</p>
+</div>
+<div class="paragraph">
+<p>The best approach to get the correct path to your assemblies is by using <code>AppDomain.BaseDirectory</code>.
+Note that log4net internals never use the current directory.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="reporting-bugs"><a class="anchor" href="#reporting-bugs"></a>How do I report bugs?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>First, ensure it’s truly a bug and not a usage error.
+If unsure, it’s best to start with a <a href="https://github.com/apache/logging-log4net/discussions/new?category=general">discussion</a>.</p>
+</div>
+<div class="paragraph">
+<p>If you’ve identified a bug, please report it via our <a href="https://github.com/apache/logging-log4net/issues">Issue Tracker</a>.
+Before submitting, check if the issue has already been reported by searching the existing issues.</p>
+</div>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../_/js/site.js" data-ui-root-path="../_"></script>
+<script async src="../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/filters.html b/log4net-3.1.0/manual/filters.html
index bbee752..85a40f5 100644
--- a/log4net-3.1.0/manual/filters.html
+++ b/log4net-3.1.0/manual/filters.html
@@ -74,6 +74,9 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="index.html">Manual</a>
<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="introduction.html">Introduction</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="appenders.html">Appenders</a>
</li>
@@ -82,16 +85,82 @@
<a class="nav-link" href="configuration.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
- <a class="nav-link" href="configuration-examples.html">Configuration Examples</a>
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/udpappender.html">UdpAppender</a>
</li>
</ul>
</li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="faq.html">F.A.Q.</a>
+ </li>
<li class="nav-item is-current-page" data-depth="2">
<a class="nav-link" href="filters.html">Filters</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="layouts.html">Layouts</a>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="supported-frameworks.html">Supported Frameworks</a>
+ </li>
</ul>
</li>
<li class="nav-item" data-depth="1">
@@ -136,6 +205,8 @@
</aside>
<article class="doc">
<h1 class="page">Filters</h1>
+<div id="preamble">
+<div class="sectionbody">
<div class="paragraph">
<p>Filters are log4net plugins that evaluate the parameters of a logging call or a log event and return one of three results:</p>
</div>
@@ -205,6 +276,54 @@ This filter is only useful at the end of the filter chain.</p>
<filter type="log4net.Filter.DenyAllFilter" /></code></pre>
</div>
</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="list-of-filters"><a class="anchor" href="#list-of-filters"></a>List of Filters</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The following filters are defined in the log4net package:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">log4net.Filter.DenyAllFilter</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Drops all logging events unconditionally.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">log4net.Filter.LevelMatchFilter</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows only events with an exact level match.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">log4net.Filter.LevelRangeFilter</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows events within a specified range of levels.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">log4net.Filter.LoggerMatchFilter</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Matches events from loggers with names starting with a given string.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">log4net.Filter.PropertyFilter</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Matches events based on a specific property’s value.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">log4net.Filter.StringMatchFilter</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Matches events containing a specific substring in the message.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
</article>
</div>
</main>
diff --git a/log4net-3.1.0/manual/index.html b/log4net-3.1.0/manual/index.html
index 3135d2d..50e3076 100644
--- a/log4net-3.1.0/manual/index.html
+++ b/log4net-3.1.0/manual/index.html
@@ -74,6 +74,9 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="index.html">Manual</a>
<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="introduction.html">Introduction</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="appenders.html">Appenders</a>
</li>
@@ -82,16 +85,82 @@
<a class="nav-link" href="configuration.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
- <a class="nav-link" href="configuration-examples.html">Configuration Examples</a>
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/udpappender.html">UdpAppender</a>
+ </li>
+</ul>
</li>
</ul>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="faq.html">F.A.Q.</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="filters.html">Filters</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="layouts.html">Layouts</a>
</li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="supported-frameworks.html">Supported Frameworks</a>
+ </li>
</ul>
</li>
<li class="nav-item" data-depth="1">
diff --git a/log4net-3.1.0/manual/installation.html b/log4net-3.1.0/manual/installation.html
index ddaf03a..ff1d090 100644
--- a/log4net-3.1.0/manual/installation.html
+++ b/log4net-3.1.0/manual/installation.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
- <title>Install Apache log4net :: Apache log4net</title>
+ <title>Installation :: Apache log4net</title>
<link rel="canonical" href="https://logging.apache.org/log4net/manual/installation.html">
<meta name="generator" content="Antora 3.2.0-alpha.6">
<link rel="stylesheet" href="../_/css/site.css">
@@ -74,6 +74,9 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="index.html">Manual</a>
<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="introduction.html">Introduction</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="appenders.html">Appenders</a>
</li>
@@ -82,16 +85,82 @@
<a class="nav-link" href="configuration.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
- <a class="nav-link" href="configuration-examples.html">Configuration Examples</a>
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/udpappender.html">UdpAppender</a>
</li>
</ul>
</li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="faq.html">F.A.Q.</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="filters.html">Filters</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="layouts.html">Layouts</a>
</li>
+ <li class="nav-item is-current-page" data-depth="2">
+ <a class="nav-link" href="installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="supported-frameworks.html">Supported Frameworks</a>
+ </li>
</ul>
</li>
<li class="nav-item" data-depth="1">
@@ -124,7 +193,8 @@
<nav class="breadcrumbs" aria-label="breadcrumbs">
<ul>
<li><a href="../index.html">Home</a></li>
- <li><a href="installation.html">Install Apache log4net</a></li>
+ <li><a href="index.html">Manual</a></li>
+ <li><a href="installation.html">Installation</a></li>
</ul>
</nav>
<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/installation.adoc">Edit this Page</a></div>
@@ -134,7 +204,7 @@
<div class="toc-menu"></div>
</aside>
<article class="doc">
-<h1 class="page">Install Apache log4net</h1>
+<h1 class="page">Installation</h1>
<div class="paragraph">
<p>The preferred way to install log4net is to use our <a href="https://www.nuget.org/packages/log4net">nuget package</a>.</p>
</div>
@@ -151,6 +221,9 @@
<div class="paragraph">
<p>Now you can use log4net. See our <a href="https://github.com/apache/logging-log4net/tree/master/examples">examples</a>.</p>
</div>
+<div class="paragraph">
+<p>Alternatively you can use the dotnet tool.</p>
+</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-powershell hljs" data-lang="powershell">dotnet add package log4net</code></pre>
diff --git a/log4net-3.1.0/manual/introduction.html b/log4net-3.1.0/manual/introduction.html
new file mode 100644
index 0000000..02e8f84
--- /dev/null
+++ b/log4net-3.1.0/manual/introduction.html
@@ -0,0 +1,786 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Introduction :: Apache log4net</title>
+ <link rel="canonical" href="https://logging.apache.org/log4net/manual/introduction.html">
+ <meta name="generator" content="Antora 3.2.0-alpha.6">
+<link rel="stylesheet" href="../_/css/site.css">
+<link rel="icon" href="../_/../_images/favicon.ico" type="image/x-icon">
+<!-- `@asciidoctor/tabs` extension styles -->
+<link rel="stylesheet" href="../_/css/vendor/tabs.css">
+<style>
+ /* Swap colors of `IMPORTANT` and `WARNING` blocks */
+ .doc .admonitionblock.important .icon { background-color: #f70; }
+ .doc .admonitionblock.warning .icon { background-color: #e40046; }
+ /* Default `h4`, `h5`, and `h6` are smaller than the normal text, fix header font sizing: */
+ .doc h1 { font-size: 1.9rem; }
+ .doc h2 { font-size: 1.7rem; }
+ .doc h3 { font-size: 1.5rem; font-weight: 400; }
+ .doc h4 { font-size: 1.3rem; font-weight: 500; }
+ .doc h5 { font-size: 1.1rem; font-weight: 500; text-decoration: underline; }
+ .doc h6 { font-size: 0.9rem; font-weight: 500; text-decoration: underline; }
+ /* Default `code`, `pre`, and `.colist` (source code annotations) fonts are too big, adjust them: */
+ .doc .colist>table code, .doc p code, .doc thead code { font-size: 0.8em; }
+ .doc pre { font-size: 0.7rem; }
+ .doc .colist { font-size: 0.75rem; }
+ /* Make links more visible: */
+ .doc a { text-decoration: underline; }
+ .doc a code { text-decoration: underline; color: #1565c0; }
+ /* Tab header fonts aren't rendered good, adjusting the font weight: */
+ .tablist > ul li { font-weight: 500; }
+ /* `page-toclevels` greater than 4 are not supported by Antora UI, patching it: */
+ .toc .toc-menu li[data-level="4"] a {
+ padding-left: 2.75rem;
+ }
+ /* Replace the default highlight.js color for strings from red (unnecessarily signaling something negative) to green: */
+ .hljs-string {
+ color: #0f8532;
+ }
+</style>
+ </head>
+ <body class="article">
+<header class="header">
+ <nav class="navbar">
+ <div class="navbar-brand">
+ <span class="navbar-item title">Apache log4net</span>
+ </div>
+ <div id="topbar-nav" class="navbar-menu">
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://logging.apache.org">a subproject of <strong>Apache Logging Services</strong></a>
+ </div>
+ </div>
+ </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="ROOT" data-version="">
+ <aside class="nav">
+ <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+ <nav class="nav-menu">
+ <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
+ <h3 class="title"><a href="../index.html">Home</a></h3>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../download.html">Download</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../development.html">Development</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="index.html">Manual</a>
+<ul class="nav-list">
+ <li class="nav-item is-current-page" data-depth="2">
+ <a class="nav-link" href="introduction.html">Introduction</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="appenders.html">Appenders</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="configuration.html">Configuration</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="3">
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/udpappender.html">UdpAppender</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="examples.html">Examples</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="faq.html">F.A.Q.</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="filters.html">Filters</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="layouts.html">Layouts</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="installation.html">Installation</a>
+ </li>
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="supported-frameworks.html">Supported Frameworks</a>
+ </li>
+</ul>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../features.html">Features</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../release-notes.html">Release notes</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="../release-review.html">Release verification</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/support.html">Support</a>
+ </li>
+ <li class="nav-item" data-depth="1">
+ <a class="nav-link" href="https://logging.apache.org/security.html">Security</a>
+ </li>
+</ul>
+ </li>
+</ul>
+ </nav>
+</div>
+ </div>
+ </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+ <a href="../index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+ <ul>
+ <li><a href="../index.html">Home</a></li>
+ <li><a href="index.html">Manual</a></li>
+ <li><a href="introduction.html">Introduction</a></li>
+ </ul>
+</nav>
+<div class="edit-this-page"><a href="https://github.com/apache/logging-log4net/edit/Feature/Antora/src/site/antora/modules/ROOT/pages/manual/introduction.adoc">Edit this Page</a></div>
+</div>
+ <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+ <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">Introduction</h1>
+<div class="sect1">
+<h2 id="overview"><a class="anchor" href="#overview"></a>Overview</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This document introduces the log4net API, its unique features, and the rationale behind its design.
+log4net enables developers to control logging output with fine-grained precision.
+It is fully configurable at runtime through external configuration files.</p>
+</div>
+<div class="paragraph">
+<p>Almost every large application includes some form of logging or tracing system.
+Adding log statements is a straightforward and effective method for debugging.
+Sometimes it’s the only available method, especially in multithreaded or distributed applications.
+Traditional debuggers may be limited or unavailable in such environments.</p>
+</div>
+<div class="paragraph">
+<p>After deployment, logging often becomes the only way to understand application behavior.
+Effective logging systems allow administrators to diagnose and resolve issues.</p>
+</div>
+<div class="paragraph">
+<p>Experience shows that logging is a critical part of the development process.
+It provides detailed context about the application’s execution.
+It operates automatically once integrated into the codebase.
+Log output can also be stored persistently for later analysis.
+Beyond development, a powerful logging system can also serve as an auditing mechanism.</p>
+</div>
+<div class="paragraph">
+<p>Logging has trade-offs.
+It can reduce performance.
+It can produce overwhelming amounts of output.
+log4net is designed to minimize these downsides.
+It is fast, reliable, and extensible.
+The log4net API emphasizes simplicity and ease of use.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="frameworks"><a class="anchor" href="#frameworks"></a>Frameworks</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>log4net is available for several frameworks.
+For each supported framework, an assembly targeting that framework is built:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>.NET Standard 2.0 via .NET 8.0</p>
+</li>
+<li>
+<p>Microsoft .NET Framework 4.6.2</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Not all frameworks are created equal, and some features have been excluded from certain builds.
+For more information, see the <a href="supported-frameworks.html" class="xref page">Supported Frameworks</a> document.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="main-components"><a class="anchor" href="#main-components"></a>Main Components</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>log4net has three main components:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>loggers - capture and categorize log messages.</p>
+</li>
+<li>
+<p>appenders - define where and how log messages are output</p>
+</li>
+<li>
+<p>layouts - control the format of log messages.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>These components work together to enable developers to log messages according to message type and level.
+They also allow controlling at runtime how these messages are formatted and where they are reported.</p>
+</div>
+<div class="paragraph">
+<p>These components are assisted by filters that control the actions of the appender.
+Object renderers are used to turn objects into strings.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="logger-hierarchy"><a class="anchor" href="#logger-hierarchy"></a>Logger hierarchy</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Loggers are named entities, with case-sensitive names that follow a hierarchical structure.
+The main advantage of logging APIs over <code>System.Console.WriteLine</code> is the ability to disable certain log statements while allowing others to print.</p>
+</div>
+<div class="paragraph">
+<p>Loggers can have parent-child relationships based on their names.
+For example, a logger named <code>Animals.Carnivora</code> is the parent of <code>Animals.Carnivora.Dog</code>, and <code>System</code> is the parent of <code>System.Text</code> and ancestor of <code>System.Text.StringBuilder</code>.
+This hierarchy is similar to .NET’s namespace and class structure.</p>
+</div>
+<div class="paragraph">
+<p>The root logger sits at the top of the hierarchy:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>It always exists</p>
+</li>
+<li>
+<p>It cannot be retrieved by name</p>
+</li>
+<li>
+<p>It always has an assigned level</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Loggers are retrieved using the static <code>GetLogger</code> method from the <code>log4net.LogManager</code> class.
+It can take either a string for the logger name or a <code>Type</code> for the desired class.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">namespace log4net
+{
+ public class LogManager
+ {
+ public static ILog GetLogger(string name);
+ public static ILog GetLogger(Type type);
+ }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The <code>GetLogger</code> method that takes a <code>Type</code> parameter uses the fully qualified type name as the name of the logger to retrieve.</p>
+</div>
+<div class="paragraph">
+<p>These <code>GetLogger</code> methods return an <code>ILog</code> interface, which is the representation of the logger passed back to the developer.</p>
+</div>
+<div class="paragraph">
+<p>The <code>ILog</code> interface is defined as follows:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">namespace log4net
+{
+ public interface ILog
+ {
+ /* Test if a level is enabled for logging */
+ bool IsDebugEnabled { get; }
+ bool IsInfoEnabled { get; }
+ bool IsWarnEnabled { get; }
+ bool IsErrorEnabled { get; }
+ bool IsFatalEnabled { get; }
+
+ /* Log a message object */
+ void Debug(object message);
+ void Info(object message);
+ void Warn(object message);
+ void Error(object message);
+ void Fatal(object message);
+
+ /* Log a message object and exception */
+ void Debug(object message, Exception t);
+ void Info(object message, Exception t);
+ void Warn(object message, Exception t);
+ void Error(object message, Exception t);
+ void Fatal(object message, Exception t);
+
+ /* Log a message string using the System.String.Format syntax */
+ void DebugFormat(string format, params object[] args);
+ void InfoFormat(string format, params object[] args);
+ void WarnFormat(string format, params object[] args);
+ void ErrorFormat(string format, params object[] args);
+ void FatalFormat(string format, params object[] args);
+
+ /* Log a message string using the System.String.Format syntax and provide a culture / format provider */
+ void DebugFormat(IFormatProvider provider, string format, params object[] args);
+ void InfoFormat(IFormatProvider provider, string format, params object[] args);
+ void WarnFormat(IFormatProvider provider, string format, params object[] args);
+ void ErrorFormat(IFormatProvider provider, string format, params object[] args);
+ void FatalFormat(IFormatProvider provider, string format, params object[] args);
+ }
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="logger-levels"><a class="anchor" href="#logger-levels"></a>Logger Levels</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Loggers may be assigned levels.
+Levels are instances of the <code>log4net.Core.Level</code> class.
+The following levels are defined in order of increasing priority:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>ALL</p>
+</li>
+<li>
+<p>DEBUG</p>
+</li>
+<li>
+<p>INFO</p>
+</li>
+<li>
+<p>WARN</p>
+</li>
+<li>
+<p>ERROR</p>
+</li>
+<li>
+<p>FATAL</p>
+</li>
+<li>
+<p>OFF</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>If a given logger is not assigned a level, it inherits one from its closest ancestor with an assigned level.</p>
+</div>
+<div class="paragraph">
+<p>More formally:</p>
+</div>
+<div class="sect2">
+<h3 id="level-inheritance"><a class="anchor" href="#level-inheritance"></a>Level Inheritance</h3>
+<div class="paragraph">
+<p>The inherited level for a given logger X is equal to the first non-null level in the logger hierarchy, starting at X and proceeding upwards in the hierarchy towards the root logger.</p>
+</div>
+<div class="paragraph">
+<p>To ensure that all loggers can eventually inherit a level, the root logger always has an assigned level.
+The default value for the root logger is <code>DEBUG</code>.</p>
+</div>
+<div class="paragraph">
+<p>Below are four examples showing various assigned level values and the resulting inherited levels according to the inheritance rule.</p>
+</div>
+<div class="sect3">
+<h4 id="example1"><a class="anchor" href="#example1"></a>Example 1: Root Logger Assigned Level</h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Logger name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Assigned level</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Inherited level</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">root</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DEBUG</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DEBUG</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">X</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">none</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DEBUG</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">X.Y</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">none</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DEBUG</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">X.Y.Z</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">none</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DEBUG</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>In this example, the root logger is assigned the level <code>DEBUG</code>, so all child loggers inherit this level.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="example2"><a class="anchor" href="#example2"></a>Example 2: All Loggers Have Assigned Levels</h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Logger name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Assigned level</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Inherited level</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">root</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DEBUG</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DEBUG</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">X</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">INFO</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">INFO</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">X.Y</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">WARN</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">WARN</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">X.Y.Z</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ERROR</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ERROR</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Here, each logger has its own assigned level, so no inheritance is needed.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="example3"><a class="anchor" href="#example3"></a>Example 3: Some Loggers Inherit Level</h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Logger name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Assigned level</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Inherited level</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">root</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DEBUG</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DEBUG</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">X</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">INFO</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">INFO</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">X.Y</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">none</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">INFO</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">X.Y.Z</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ERROR</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ERROR</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>In this example, the <code>X.Y</code> logger inherits the <code>INFO</code> level from its parent <code>X</code> logger. The <code>X.Y.Z</code> logger has its own assigned level, <code>ERROR</code>.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="example4"><a class="anchor" href="#example4"></a>Example 4: Some Loggers Inherit from Parent</h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Logger name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Assigned level</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Inherited level</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">root</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DEBUG</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DEBUG</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">X</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">INFO</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">INFO</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">X.Y</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">none</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">INFO</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">X.Y.Z</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">none</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">INFO</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Here, the <code>X.Y</code> and <code>X.Y.Z</code> loggers inherit the level <code>INFO</code> from their parent <code>X</code> logger.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="example-summary"><a class="anchor" href="#example-summary"></a>Summary</h4>
+<div class="paragraph">
+<p>The idea is that loggers inherit the level of their closest ancestor logger if no level is explicitly assigned. This ensures that you don’t need to manually assign levels to each logger, and the level can propagate upwards in the hierarchy.</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="logging-requests"><a class="anchor" href="#logging-requests"></a>Logging Requests</h3>
+<div class="paragraph">
+<p>Logging requests are made by invoking one of the printing methods of a logger instance (through the log4net.ILog).</p>
+</div>
+<div class="paragraph">
+<p>The available printing methods are:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Debug</p>
+</li>
+<li>
+<p>Info</p>
+</li>
+<li>
+<p>Warn</p>
+</li>
+<li>
+<p>Error</p>
+</li>
+<li>
+<p>Fatal</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>By definition, the printing method determines the level of a logging request. For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">log.Info("...");</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This statement represents a logging request with level <code>INFO</code>.</p>
+</div>
+<div class="paragraph">
+<p>A logging request is considered "enabled" if its level is higher than or equal to the level of the logger. Otherwise, the request is "disabled."</p>
+</div>
+<div class="paragraph">
+<p>If a logger does not have an assigned level, it will inherit one from its closest ancestor in the logger hierarchy.</p>
+</div>
+<div class="sect3">
+<h4 id="basic-selection-rule"><a class="anchor" href="#basic-selection-rule"></a>Basic Selection Rule</h4>
+<div class="paragraph">
+<p>A log request of level <code>L</code> in a logger with (either assigned or inherited, whichever is appropriate) level <code>K</code> is enabled if <code>L >= K</code>.</p>
+</div>
+<div class="paragraph">
+<p>This rule is at the heart of log4net. It assumes that levels are ordered. For the standard levels, we have:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>DEBUG < INFO < WARN < ERROR < FATAL</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Calling the <code>log4net.LogManager.GetLogger</code> method with the same name will always return a reference to the exact same logger object.</p>
+</div>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-csharp hljs" data-lang="csharp">ILog x = LogManager.GetLogger("wombat");
+ILog y = LogManager.GetLogger("wombat");</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>In this case, <code>x</code> and <code>y</code> refer to exactly the same logger object.</p>
+</div>
+<div class="paragraph">
+<p>Thus, it is possible to configure a logger and then to retrieve the same instance somewhere else in the code without passing around references.</p>
+</div>
+<div class="paragraph">
+<p>In fundamental contradiction to biological parenthood, where parents always precede their children, log4net loggers can be created and configured in any order.</p>
+</div>
+<div class="paragraph">
+<p>In particular, a "parent" logger will find and link to its descendants even if it is instantiated after them.</p>
+</div>
+<div class="paragraph">
+<p>Logger configuration is usually done during application startup, typically via a configuration file.</p>
+</div>
+<div class="paragraph">
+<p>Loggers are often named after the class they’re used in, using the fully qualified class name.
+This makes log output easy to trace and aligns naturally with the application’s design.</p>
+</div>
+<div class="paragraph">
+<p>While other naming strategies are possible, this approach is simple, effective, and widely adopted.</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="appenders"><a class="anchor" href="#appenders"></a>Appenders</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>See <a href="appenders.html" class="xref page">Appenders</a></p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="filters"><a class="anchor" href="#filters"></a>Filters</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>See <a href="filters.html" class="xref page">Filters</a></p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="layouts"><a class="anchor" href="#layouts"></a>Layouts</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>See <a href="layouts.html" class="xref page">Layouts</a></p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="renderers"><a class="anchor" href="#renderers"></a>Object Renderers</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>log4net can render the content of log messages using custom logic defined by the user.</p>
+</div>
+<div class="paragraph">
+<p>For example, if you often log <code>Orange</code> objects, you can register an <code>OrangeRenderer</code> to format them consistently in logs.</p>
+</div>
+<div class="paragraph">
+<p>Renderers follow the class hierarchy.
+If you register a <code>FruitRenderer</code>, it will be used for all <code>Fruit</code> types—including <code>Orange</code>—unless a more specific <code>OrangeRenderer</code> is also registered.</p>
+</div>
+<div class="paragraph">
+<p>Renderers must implement the <code>log4net.ObjectRenderer.IObjectRenderer</code> interface.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Format methods like <code>DebugFormat</code>, <code>InfoFormat</code>, etc., do <strong>not</strong> use Object Renderers.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</article>
+ </div>
+</main>
+</div>
+<footer class="footer">
+ <p>
+ Copyright © 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.
+ Please read our <a href="https://privacy.apache.org/policies/privacy-policy-public.html">privacy policy</a>.
+ </p>
+ <p>
+ Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.
+ Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ Other names may be trademarks of their respective owners.
+ </p>
+</footer>
+<script id="site-script" src="../_/js/site.js" data-ui-root-path="../_"></script>
+<script async src="../_/js/vendor/highlight.js"></script>
+<!-- `@asciidoctor/tabs` extension scripts -->
+<script async src="../_/js/vendor/tabs.js"></script>
+ </body>
+</html>
diff --git a/log4net-3.1.0/manual/layouts.html b/log4net-3.1.0/manual/layouts.html
index 09d522d..25810f0 100644
--- a/log4net-3.1.0/manual/layouts.html
+++ b/log4net-3.1.0/manual/layouts.html
@@ -74,6 +74,9 @@
<button class="nav-item-toggle"></button>
<a class="nav-link" href="index.html">Manual</a>
<ul class="nav-list">
+ <li class="nav-item" data-depth="2">
+ <a class="nav-link" href="introduction.html">Introduction</a>
+ </li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="appenders.html">Appenders</a>
</li>
@@ -82,16 +85,82 @@
<a class="nav-link" href="configuration.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
- <a class="nav-link" href="configuration-examples.html">Configuration Examples</a>
+ <button class="nav-item-toggle"></button>
+ <a class="nav-link" href="configuration/examples.html">Examples</a>
+<ul class="nav-list">
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/adonetappender.html">AdoNetAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/bufferingforwardingappender.html">BufferingForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/coloredconsoleappender.html">ColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/consoleappender.html">ConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/eventlogappender.html">EventLogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/fileappender.html">FileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/rollingfileappender.html">RollingFileAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/forwardingappender.html">ForwardingAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/localsyslogappender.html">LocalSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/managedcoloredconsoleappender.html">ManagedColoredConsoleAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/memoryappender.html">MemoryAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/outputdebugstringappender.html">OutputDebugStringAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/remotesyslogappender.html">RemoteSyslogAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtpappender.html">SmtpAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/smtppickupdirappender.html">SmtpPickupDirAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/traceappender.html">TraceAppender</a>
+ </li>
+ <li class="nav-item" data-depth="4">
+ <a class="nav-link" href="configuration/udpappender.html">UdpAppender</a>
+ </li>
+</ul>
</li>
... 1355 lines suppressed ...