blob: 95e80b0d9f403bbf3731ae69d9e8ebe8496bb792 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at Sep 9, 2013 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>
Apache log4net: Supported Frameworks</title>
<style type="text/css" media="all">
@import url("../css/maven-base.css");
@import url("../css/maven-theme.css");
@import url("../css/site.css");
</style>
<link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
<meta name="author" content="Nicko Cadell" />
<meta name="Date-Revision-yyyymmdd" content="20130909" />
<meta http-equiv="Content-Language" content="en" />
<meta name="keywords" content="log4net supported frameworks, mono, sscli, .net, log4net" />
</head>
<body class="composite">
<div id="banner">
<a href="../../" id="bannerLeft">
<img src="../images/ls-logo.jpg" alt="Apache Logging Services Project" />
</a>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2013-09-09</span>
&nbsp;| <span id="projectVersion">Version: 1.2.12</span>
| <a href="http://www.apache.org/" class="externalLink" title="Apache">Apache</a>
&gt;
<a href="../../" title="Logging Services">Logging Services</a>
&gt;
<a href=".././" title="log4net">log4net</a>
&gt;
Apache log4net: Supported Frameworks
</div>
<div class="xright">
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>Apache log4net</h5>
<ul>
<li class="none">
<a href="../index.html" title="About">About</a>
</li>
<li class="none">
<a href="../download_log4net.cgi" title="Download">Download</a>
</li>
<li class="none">
<a href="../release/release-notes.html" title="Release Notes">Release Notes</a>
</li>
<li class="none">
<a href="../license.html" title="License">License</a>
</li>
</ul>
<h5>Documentation</h5>
<ul>
<li class="none">
<a href="../release/features.html" title="Features">Features</a>
</li>
<li class="none">
<strong>Supported Frameworks</strong>
</li>
<li class="none">
<a href="../release/example-apps.html" title="Example Apps">Example Apps</a>
</li>
<li class="none">
<a href="../release/config-examples.html" title="Config Examples">Config Examples</a>
</li>
<li class="none">
<a href="../release/building.html" title="Building">Building</a>
</li>
<li class="none">
<a href="../release/faq.html" title="FAQ">FAQ</a>
</li>
<li class="none">
<a href="../release/howto/index.html" title="How Tos">How Tos</a>
</li>
<li class="none">
<a href="../release/sdk/index.html" title="SDK Reference">SDK Reference</a>
</li>
</ul>
<h5>Manual</h5>
<ul>
<li class="none">
<a href="../release/manual/introduction.html" title="Introduction">Introduction</a>
</li>
<li class="none">
<a href="../release/manual/configuration.html" title="Configuration">Configuration</a>
</li>
<li class="none">
<a href="../release/manual/contexts.html" title="Contexts">Contexts</a>
</li>
<li class="none">
<a href="../release/manual/plugins.html" title="Plugins">Plugins</a>
</li>
<li class="none">
<a href="../release/manual/repositories.html" title="Repositories">Repositories</a>
</li>
<li class="none">
<a href="../release/manual/internals.html" title="Internals">Internals</a>
</li>
</ul>
<h5>Community</h5>
<ul>
<li class="none">
<a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a>
</li>
<li class="none">
<a href="../issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
</li>
</ul>
<h5>Development</h5>
<ul>
<li class="none">
<a href="../source-repository.html" title="Repository">Repository</a>
</li>
<li class="none">
<a href="../integration.html" title="Continuous Integration">Continuous Integration</a>
</li>
</ul>
<h5>Project Documentation</h5>
<ul>
<li class="collapsed">
<a href="../project-info.html" title="Project Information">Project Information</a>
</li>
<li class="collapsed">
<a href="../project-reports.html" title="Project Reports">Project Reports</a>
</li>
</ul>
<h5>Apache</h5>
<ul>
<li class="none">
<a href="http://www.apache.org/" class="externalLink" title="Home">Home</a>
</li>
<li class="none">
<a href="http://www.apache.org/licenses/" class="externalLink" title="License">License</a>
</li>
<li class="none">
<a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a>
</li>
<li class="none">
<a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a>
</li>
<li class="none">
<a href="http://www.apache.org/security/" class="externalLink" title="Security">Security</a>
</li>
<li class="none">
<a href="http://www.apachecon.com" class="externalLink" title="Conferences">Conferences</a>
</li>
</ul>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
<img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<!-- Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to you under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. -->
<a name="main"></a><div class="section"><h2 id="main">Apache log4net&#x2122; Supported Frameworks</h2>
<a name="summary"></a><div class="section"><h2 id="summary">Summary of .NET frameworks supported by log4net</h2>
<p>
log4net is built on a number of different frameworks. Each new version of the frameworks add
new features. To take advantage of these new features we must build log4net using the
appropriate framework. We also maintain builds compatible with older versions of the frameworks.
</p>
<p>
It is important to remember that the .NET frameworks support backward compatibility, that is
a new version of the framework will run binary assemblies that were targeted to previous versions
of the framework.
</p>
<p>
While the number of different builds available may seem confusing, you only need to select the
nearest build for your platform that is equal to or earlier than your chosen deployment framework.
If you intend to deploy your application on the Microsoft&#xae; .NET Framework 1.0 don't pick the
log4net build that is built against the Microsoft .NET Framework 1.1 because the .NET framework
does not guarantee forward compatibility only backward compatibility.
</p>
<p>
The lowest common denominator build is the CLI 1.0 Compatible build. This build is compatible with
the ECMA/ISO CLI 1.0 standard APIs and will run on all frameworks that support the standard. (Note
that the Microsoft .NET Compact Framework does not support this standard). Use this build if you
intend to deploy you application on both the Microsoft .NET Frameworks and the Mono frameworks.
</p>
<p>
log4net now builds on the following frameworks:
</p>
<div class="table">
<table border="0" class="bodyTable">
<colgroup>
<col style="text-align: left; white-space: nowrap" />
<col style="text-align: left;" />
</colgroup>
<tr class="a">
<th>Framework</th>
<th>Website</th>
</tr>
<tr class="b" style="vertical-align: top;">
<td>Microsoft .NET Framework 1.0</td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/netframework/">http://msdn.microsoft.com/en-us/netframework/</a></td>
</tr>
<tr class="a" style="vertical-align: top;">
<td>Microsoft .NET Framework 1.1</td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/netframework/">http://msdn.microsoft.com/en-us/netframework/</a></td>
</tr>
<tr class="b" style="vertical-align: top;">
<td>Microsoft .NET Framework 2.0</td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/netframework/">http://msdn.microsoft.com/en-us/netframework/</a></td>
</tr>
<tr class="a" style="vertical-align: top;">
<td>Microsoft .NET Framework 3.5</td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/netframework/">http://msdn.microsoft.com/en-us/netframework/</a></td>
</tr>
<tr class="b" style="vertical-align: top;">
<td>Microsoft .NET Framework 4.0</td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/netframework/">http://msdn.microsoft.com/en-us/netframework/</a></td>
</tr>
<tr class="a" style="vertical-align: top;">
<td>Microsoft .NET Framework 3.5 Client Profile</td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/cc656912.aspx">http://msdn.microsoft.com/en-us/library/cc656912.aspx</a></td>
</tr>
<tr class="b" style="vertical-align: top;">
<td>Microsoft .NET Framework 4.0 Client Profile</td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/cc656912.aspx">http://msdn.microsoft.com/en-us/library/cc656912.aspx</a></td>
</tr>
<tr class="a" style="vertical-align: top;">
<td>Microsoft .NET Compact Framework 1.0</td>
<td><a class="externalLink" href="http://msdn2.microsoft.com/en-us/netframework/aa497273.aspx">http://msdn2.microsoft.com/en-us/netframework/aa497273.aspx</a></td>
</tr>
<tr class="b" style="vertical-align: top;">
<td>Microsoft .NET Compact Framework 2.0</td>
<td><a class="externalLink" href="http://msdn2.microsoft.com/en-us/netframework/aa497273.aspx">http://msdn2.microsoft.com/en-us/netframework/aa497273.aspx</a></td>
</tr>
<tr class="a" style="vertical-align: top;">
<td>Mono</td>
<td><a class="externalLink" href="http://www.mono-project.com">http://www.mono-project.com</a></td>
</tr>
<tr class="b" style="vertical-align: top;">
<td>Microsoft Shared Source CLI 1.0</td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/ms973879.aspx">http://msdn.microsoft.com/en-us/library/ms973879.aspx</a></td>
</tr>
<tr class="a" style="vertical-align: top;">
<td>CLI 1.0 Compatible</td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/netframework/aa569283.aspx">http://msdn.microsoft.com/en-us/netframework/aa569283.aspx</a></td>
</tr>
</table>
</div>
<p>
For most of these frameworks a log4net assembly targeting the framework is supplied. Although it's
perfectly possible to use the .NET Framework 1.0 version of log4net on the .NET Framework 1.1, having
an assembly that really targets a specific framework allows us to use features in that framework that
are not available in other frameworks or remove features from log4net that are not supported in a
specific framework.
</p>
<p>
There are no assemblies targeting the Compact
Framework 1.0/2.0 or Microsoft Shared Source CLI 1.0 in
the binary release, but they can be built from the
source release.
</p>
</div>
<a name="appenders"></a><div class="section"><h2 id="appenders">Appenders</h2>
<p>
The appenders available to each framework depend on the functionality of the
framework and the platform it runs on:
</p>
<div class="table">
<table border="0" class="bodyTable">
<colgroup>
<col style="text-align: left;" />
<col style="text-align: center;" />
<col style="text-align: center;" />
<col style="text-align: center;" />
<col style="text-align: center;" />
<col style="text-align: center;" />
<col style="text-align: center;" />
<col style="text-align: center;" />
<col style="text-align: center;" />
<col style="text-align: center;" />
<col style="text-align: center;" />
<col style="text-align: center;" />
</colgroup>
<tr class="a">
<th>Appender</th>
<th>.NET Framework 1.0</th>
<th>.NET Framework 1.1</th>
<th>.NET Framework 2.0</th>
<th>.NET Framework 3.5</th>
<th>.NET Framework 4.0</th>
<th>.NET Framework 3.5 Client Profile</th>
<th>.NET Framework 4.0 Client Profile</th>
<th>.NET CF 1.0</th>
<th>.NET CF 2.0</th>
<th>Mono</th>
<th>Shared Source CLI 1.0</th>
<th>CLI 1.0 Compatible</th>
</tr>
<tr class="b">
<td>AdoNetAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td></td>
<td>x</td>
</tr>
<tr class="a">
<td>AnsiColorTerminalAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="b">
<td>AspNetTraceAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>x</td>
<td></td>
<td>x</td>
</tr>
<tr class="a">
<td>BufferingForwardingAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="b">
<td>ColoredConsoleAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="a">
<td>ConsoleAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="b">
<td>DebugAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="a">
<td>EventLogAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td></td>
<td></td>
<td>x</td>
<td></td>
<td>x</td>
</tr>
<tr class="b">
<td>FileAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="a">
<td>ForwardingAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="b">
<td>LocalSyslogAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td></td>
<td></td>
<td>x</td>
<td></td>
<td>x</td>
</tr>
<tr class="a">
<td>ManagedColoredConsoleAppender</td>
<td></td>
<td></td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td></td>
<td></td>
<td>x</td>
<td></td>
<td></td>
</tr>
<tr class="b">
<td>MemoryAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="a">
<td>NetSendAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="b">
<td>OutputDebugStringAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="a">
<td>RemoteSyslogAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="b">
<td>RemotingAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td></td>
<td></td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="a">
<td>RollingFileAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="b">
<td>SmtpAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td></td>
<td></td>
<td>x</td>
<td></td>
<td>x</td>
</tr>
<tr class="a">
<td>SmtpPickupDirAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="b">
<td>TelnetAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="a">
<td>TraceAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr class="b">
<td>UdpAppender</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
</table>
</div>
</div>
<a name="notes"></a><div class="section"><h2 id="notes">Framework Specific Notes</h2>
<a name="net1.0"></a><div class="section"><h2 id="net1.0">Microsoft .NET Framework 1.0</h2>
<p>
none
</p>
</div>
<a name="net1.1"></a><div class="section"><h2 id="net1.1">Microsoft .NET Framework 1.1</h2>
<p>
none
</p>
</div>
<a name="net2.0"></a><div class="section"><h2 id="net2.0">Microsoft .NET Framework 2.0</h2>
<p>
none
</p>
</div>
<a name="net3.5"></a><div class="section"><h2 id="net3.5">Microsoft .NET Framework 3.5</h2>
<p>
As of log4net 1.2.11 this version is identical
to the .NET 2.0 version.
</p>
</div>
<a name="net4.0"></a><div class="section"><h2 id="net4.0">Microsoft .NET Framework 4.0</h2>
<p>
none
</p>
</div>
<a name="netcp3.5"></a><div class="section"><h2 id="netcp3.5">Microsoft .NET Framework 3.5 Client Profile</h2>
<p>
As of log4net 1.2.11 this version is identical
to the .NET 3.5 version without support for
ASP.NET specific appenders and patterns.
</p>
</div>
<a name="netcp4.0"></a><div class="section"><h2 id="netcp4.0">Microsoft .NET Framework 4.0 Client Profile</h2>
<p>
As of log4net 1.2.11 this version is identical
to the .NET 4.0 version without support for
ASP.NET specific appenders and patterns.
</p>
</div>
<a name="netcf1.0"></a><div class="section"><h2 id="netcf1.0">Microsoft .NET Compact Framework 1.0</h2>
<div class="section"><div class="section"><h4>Assembly attributes<a name="Assembly_attributes"></a></h4>
<p>
The .NET Compact Framework 1.0 does not support retrieving assembly level
attributes, therefore all log4net configuration attributes were removed from
the .NET Compact Framework 1.0 version of log4net.
</p>
<p>
For Smart-device applications, the log4net system can be configured by passing
the location of the log4net configuration file to the
<span class="code">log4net.Config.XmlConfigurator.Configure(FileInfo)</span>
method in the entry point of the application.
</p>
<p>For example:</p>
<p></p>
<div class="code"><pre>
namespace TestApp
{
using System.IO;
public class EntryPoint
{
/// &lt;summary&gt;
/// Application entry point.
/// &lt;/summary&gt;
public static void Main()
{
// Uncomment the next line to enable log4net internal debugging
// log4net.Util.LogLog.InternalDebugging = true;
// This will instruct log4net to look for a configuration file
// called config.log4net in the root directory of the device
log4net.Config.XmlConfigurator.Configure(new FileInfo(@&quot;\config.log4net&quot;));
...
// This will shutdown the log4net system
log4net.LogManager.Shutdown();
}
}
}
</pre></div>
</div><div class="section"><h4>Notification events<a name="Notification_events"></a></h4>
<p>
The .NET Compact Framework 1.0 does not support notification events during the
application shutdown, therefore log4net cannot automatically hook the
application shutdown notification.
</p>
<p>
Applications will need to programmatically shutdown the log4net system during
the application's shutdown using the
<span class="code">log4net.LogManager.Shutdown()</span>
method in order to prevent losing logging events.
See the code above for an example.
</p>
</div><div class="section"><h4>FileSystemWatcher<a name="FileSystemWatcher"></a></h4>
<p>
The .NET Compact Framework 1.0 does not support the
<span class="code">System.IO.FileSystemWatcher</span>
class. As a result, the
<span class="code">XmlConfiguratorAttribute.Watch</span>
property and the
<span class="code">XmlConfigurator.ConfigureAndWatch</span>
methods are not available. Watching changes to the log4net configuration
file is not supported on the .NET Compact Framework 1.0.
</p>
</div><div class="section"><h4>UserName<a name="UserName"></a></h4>
<p>
The .NET Compact Framework 1.0 does not support the
<span class="code">System.Security.Principal.WindowsIdentity</span> class.
This is used to capture the current thread's user identity. Therefore
the <span class="code">LoggingEvent.UserName</span> property will return the value
<span class="code">&quot;NOT AVAILABLE&quot;</span>.
</p>
</div><div class="section"><h4>Identity<a name="Identity"></a></h4>
<p>
The .NET Compact Framework 1.0 does not support the
<span class="code">System.Security.Principal.IPrincipal</span> interface.
This is used to capture the current thread's user identity. Therefore
the <span class="code">LoggingEvent.Identity</span> property will return the value
<span class="code">&quot;NOT AVAILABLE&quot;</span>.
</p>
</div><div class="section"><h4>Environment variables<a name="Environment_variables"></a></h4>
<p>
The .NET Compact Framework 1.0 does not support retrieving environment
variables, therefore it's not possible to substitute environment variables in
parameter values when using the .NET Compact Framework 1.0 version of log4net.
</p>
</div><div class="section"><h4>Serialization<a name="Serialization"></a></h4>
<p>
The .NET Compact Framework 1.0 does not support serialization, therefore none of
the log4net classes in the .NET Compact Framework 1.0 version are serializable.
</p>
</div><div class="section"><h4>LoggingEvent.Domain<a name="LoggingEvent.Domain"></a></h4>
<p>
The .NET Compact Framework 1.0 does not support AppDomain functionality. The
friendly name for the current AppDomain is stored in the <span class="code">LoggingEvent.Domain</span>
property and is accessed using the <span class="code">%a</span> pattern of the
<span class="code">PatternLayout</span>. On the .NET Compact Framework 1.0 this
value is generated by taking the file name for the application's primary module.
</p>
</div></div></div>
<a name="netcf2.0"></a><div class="section"><h2 id="netcf2.0">Microsoft .NET Compact Framework 2.0</h2>
<p>
See notes for .NET Compact Framework 1.0
</p>
</div>
<a name="mono"></a><div class="section"><h2 id="mono">Mono</h2>
<p>
There are 2 separate builds of log4net for mono; Mono 1.0, built using the C# compiler in a mode
which is compatible with the CLI 1.0 language specification, and; Mono 2.0, built using the .NET
2.0 extensions to the C# language.
</p>
<a name="mono1.0"></a><div class="section"><h2 id="mono1.0">Mono 1.0</h2>
<p>
none
</p>
</div>
<a name="mono2.0"></a><div class="section"><h2 id="mono2.0">Mono 2.0</h2>
<p>
none
</p>
</div>
</div>
<a name="sscli1.0"></a><div class="section"><h2 id="sscli1.0">Microsoft Shared Source CLI 1.0</h2>
<div class="section"><div class="section"><h4>FileSystemWatcher<a name="FileSystemWatcher"></a></h4>
<p>
SSCLI 1.0 does not support the
<span class="code">System.IO.FileSystemWatcher</span>
class. As a result, the
<span class="code">XmlConfiguratorAttribute.Watch</span>
property and the
<span class="code">XmlConfigurator.ConfigureAndWatch</span>
methods are not available. Watching changes to the log4net configuration
file is not supported on SSCLI 1.0.
</p>
</div><div class="section"><h4>UserName<a name="UserName"></a></h4>
<p>
SSCLI 1.0 does not support the
<span class="code">System.Security.Principal.WindowsIdentity</span> class.
This is used to capture the current thread's user identity. Therefore
the <span class="code">LoggingEvent.UserName</span> property will return the value
<span class="code">&quot;NOT AVAILABLE&quot;</span>.
</p>
</div><div class="section"><h4>Identity<a name="Identity"></a></h4>
<p>
SSCLI 1.0 does not support the
<span class="code">System.Security.Principal.IPrincipal</span> interface.
This is used to capture the current thread's user identity. Therefore
the <span class="code">LoggingEvent.Identity</span> property will return the value
<span class="code">&quot;NOT AVAILABLE&quot;</span>.
</p>
</div></div></div>
<a name="cli1.0"></a><div class="section"><h2 id="cli1.0">CLI 1.0 Compatible</h2>
<p>
This build of log4net is designed to run on any ECMA CLI 1.0 compatible runtime.
The assembly does not support any platform specific features. The build includes
the common subset of functionality found in the .NET 1.0 and Mono 1.0 builds.
The output assembly is built using the Microsoft .NET 1.0 compiler and library.
</p>
<p>
The log4net CLI 1.0 assembly is runtime compatible with the following frameworks:
</p>
<ul>
<li>Microsoft .NET Framework 1.0 (and higher)</li>
<li>Mono 1.0 (and higher)</li>
</ul>
<p>
Only a Release build is generated for this configuration because the assembly
debugging information has not been standardized.
</p>
</div>
</div>
</div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
<div class="xright">Copyright &#169; 2004-2013
<a href="http://www.apache.org">Apache Software Foundation</a>.
Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.</div><br />
<div class="xright">Apache log4net, Apache, log4net, the Apache feather logo, the Apache Logging Services project logo and the Built by Maven logo are trademarks of The Apache Software Foundation.</div>
<div class="clear">
</div>
</div>
</body>
</html>