PostSharp 6.7 / / Post­Sharp Documentation / API Reference / Post­Sharp.​Patterns.​Diagnostics.​Backends.​Log4Net Namespace / Log4Net­Collecting­Repository­Selector Class

Log4NetCollectingRepositorySelector Class

This class is a Log4Net repository selector. It allows you to send all your Log4Net logging into PostSharp, where it can be processed by any PostSharp logging backend (including a Log4Net backend). See Remarks.
Inheritance Hierarchy
System.Object
  PostSharp.Patterns.Diagnostics.Backends.Log4Net.Log4NetCollectingRepositorySelector

Namespace:  PostSharp.Patterns.Diagnostics.Backends.Log4Net
Assembly:  PostSharp.Patterns.Diagnostics.Backends.Log4Net (in PostSharp.Patterns.Diagnostics.Backends.Log4Net.dll) Version: 6.7.12.0 (6.7.12.0)
Syntax
C#
public class Log4NetCollectingRepositorySelector : IRepositorySelector

The Log4NetCollectingRepositorySelector type exposes the following members.

Constructors
  NameDescription
Public methodLog4NetCollectingRepositorySelector
Initializes a new instance of Log4NetCollectingRepositorySelector and creates the relay repository. See Remarks on the class. Consider using the static method RedirectLoggingToPostSharp() instead.
Methods
  NameDescription
Public methodCreateRepository(Assembly, Type)
Public methodCreateRepository(String, Type)
Public methodExistsRepository
Public methodGetAllRepositories
Public methodGetRepository(Assembly)
Public methodGetRepository(String)
If repositoryName corresponds to the "relay repository", returns that. Otherwise, returns a repository of the type Log4NetCollectionRepository.
Public methodStatic memberRedirectLoggingToPostSharp
Sets the global RepositorySelector to a log4net-to-PostSharp redirector so that all repositories and loggers created after this call redirect all messages to PostSharp. Returns a "relay repository" which is the only repository that won't be redirected to PostSharp.
Events
  NameDescription
Public eventLoggerRepositoryCreatedEvent
Remarks
To use this class, use initialization code similar to this at the beginning of your application:
ILoggerRepository relay = Log4NetRedirector.RedirectLoggingToPostSharp();
BasicConfigurator.Configure( relay );
LoggingServices.DefaultBackend = new Log4NetLoggingBackend(relay);
The first line sets an instance of Log4NetCollectingRepositorySelector as the active IRepositorySelector which causes all upcoming LogManager.GetLogger(string) and similar calls to get special redirection loggers that pass all messages to PostSharp instead of into Log4Net appenders.

The first line also returns a "relay repository" which is the one repository where logging will not be redirected to PostSharp. On line 2, we configure appenders for this repository (you may want to use XmlConfigurator here). On line 3, we pass that relay repository to PostSharp so that all PostSharp logging (automatic, manual, and the logging coming from log4net) goes into that relay repository and from there to your appenders.

See Also