blob: b407352ddd272384536406c1f98f16706b30317c [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 2015-03-30 -->
<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 &#x2013; Apache log4net Manual: Repositories</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="20150330" />
<meta http-equiv="Content-Language" content="en" />
<meta name="keywords" content="building log4net, 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: 2015-03-30</span>
&nbsp;| <span id="projectVersion">Version: 1.2.13</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 &#x2013; Apache log4net Manual: Repositories
</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">
<a href="../../release/framework-support.html" title="Supported Frameworks">Supported Frameworks</a>
</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">
<strong>Repositories</strong>
</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>
</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" id="main">
<h2><a name="Apache_log4net_Manual_-_Repositories"></a>Apache log4net&#x2122; Manual - Repositories</h2>
<a name="repository"></a>
<div class="section" id="repository">
<h2><a name="Logging_Repositories"></a>Logging Repositories</h2>
<p>
Logging repositories are considered advanced functionality. The default behavior
should be sufficient for most users.
</p>
<p>
Log4net supports logging repositories. A repository is uniquely named.
Each repository is a (<span class="code">ILoggerRepository</span>).
Multiple assemblies can link to the same repository.
</p>
<p>
By default there is a single logging repository per process (more precisely per AppDomain). This extends
across all assemblies loaded into the process and allows them to all share a
single configuration. The configuration of the repository only needs to be done once,
typically in the entry point to the application, either programmatically or using
a configuration attribute.
</p>
<p>
Named logging repositories can be created using the <span class="code">LogManager.CreateRepository</span>
method. The repository for can be retrieved using the
<span class="code">LogManager.GetRepository</span> method.
A repository created in this way will need to be configured programmatically.
</p>
<a name="attributes"></a>
<div class="section" id="attributes">
<h2><a name="Attributes"></a>Attributes</h2>
<p>
An assembly may choose to utilize a named logging repository rather than the default repository.
This completely separates the logging for the assembly from the rest of the application.
This can be very useful to component developers that wish to use log4net for their
components but do not want to require that all the applications that use their
component are aware of log4net. It also means that their debugging configuration is
separated from the applications configuration. The assembly should specify the
<span class="code">RepositoryAttribute</span> to set its logging repository.
</p>
<p>
The log4net logging repositories can be configured using the following assembly-level
attributes:
</p>
<ul>
<li>
<b>AliasRepositoryAttribute</b>
<p>
Specifies a named repository to use as this assembly's repository.
</p>
<p>
An assembly's logger repository is defined by its
<span class="code">RepositoryAttribute</span>, however this can be overridden by an
assembly loaded before the target assembly.
</p>
<p>
An assembly can alias another assembly's repository by specifying
this attribute with the name of the target repository.
</p>
<p>
This attribute may be used as many times as necessary to alias all the required
repositories.
</p>
</li>
<li>
<b>RepositoryAttribute</b>
<p>
Specifies the logging repository for the assembly.
</p>
<p>
Assemblies are mapped to logging repositories. This attribute controls the configuration of the repository. The
<span class="code">Name</span> property specifies the name of the repository
for this assembly. The <span class="code">RepositoryType</span>
property specifies the type of the repository object to create for the assembly.
If this attribute is not specified and a <span class="code">Name</span>
is not specified then the assembly will be part of the default shared logging
repository.
</p>
<p>
This attribute may only be used once per assembly.
</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
<div class="xright">Copyright &#169; 2004-2015
<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>