Open sandboxFocus
  • TOC

Post­Sharp Documentation

Introduction

Deployment and Configuration

Adding Aspects to Code

Logging

Contracts

INotify­Property­Changed

Weak Event

XAML

Parent/Child, Visitor and Disposable

Undo/Redo

Caching

Multithreading

Developing Custom Aspects

Validating Architecture

Testing and Debugging

Miscellaneous

API Reference

Post­Sharp

Post­Sharp.​Aspects

Post­Sharp.​Aspects.​Advices

Post­Sharp.​Aspects.​Configuration

Post­Sharp.​Aspects.​Dependencies

Post­Sharp.​Aspects.​Internals

Post­Sharp.​Aspects.​Serialization

Post­Sharp.​Collections

Post­Sharp.​Constraints

Post­Sharp.​Extensibility

Post­Sharp.​Extensibility.​Build­Time­Logging

Post­Sharp.​Patterns

Post­Sharp.​Patterns.​Caching

Post­Sharp.​Patterns.​Caching.​Backends

Post­Sharp.​Patterns.​Caching.​Backends.​Azure

Post­Sharp.​Patterns.​Caching.​Backends.​Redis

Post­Sharp.​Patterns.​Caching.​Dependencies

Post­Sharp.​Patterns.​Caching.​Formatters

Post­Sharp.​Patterns.​Caching.​Implementation

Post­Sharp.​Patterns.​Caching.​Locking

Post­Sharp.​Patterns.​Caching.​Serializers

Post­Sharp.​Patterns.​Caching.​Value­Adapters

Post­Sharp.​Patterns.​Collections

Post­Sharp.​Patterns.​Collections.​Advices

Post­Sharp.​Patterns.​Contracts

Post­Sharp.​Patterns.​Diagnostics

Post­Sharp.​Patterns.​Diagnostics.​Adapters.​Asp­Net­Core

Post­Sharp.​Patterns.​Diagnostics.​Adapters.​Asp­Net­Framework

Post­Sharp.​Patterns.​Diagnostics.​Adapters.​Diagnostic­Source

Post­Sharp.​Patterns.​Diagnostics.​Adapters.​Http­Client

Post­Sharp.​Patterns.​Diagnostics.​Audit

Post­Sharp.​Patterns.​Diagnostics.​Backends

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Application­Insights

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Audit

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Common­Logging

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Console

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Event­Source

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Log4Net

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Microsoft

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Multiplexer

Post­Sharp.​Patterns.​Diagnostics.​Backends.​NLog

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Null

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Serilog

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Trace

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Trace­Source

Post­Sharp.​Patterns.​Diagnostics.​Contexts

Post­Sharp.​Patterns.​Diagnostics.​Correlation

Post­Sharp.​Patterns.​Diagnostics.​Custom

Post­Sharp.​Patterns.​Diagnostics.​Custom.​Messages

Post­Sharp.​Patterns.​Diagnostics.​Formatters

Post­Sharp.​Patterns.​Diagnostics.​Record­Builders

Post­Sharp.​Patterns.​Diagnostics.​Threading­Instrumentation

Post­Sharp.​Patterns.​Diagnostics.​Transactions

Post­Sharp.​Patterns.​Diagnostics.​Transactions.​Model

Post­Sharp.​Patterns.​Dynamic­Advising

Post­Sharp.​Patterns.​Formatters

Post­Sharp.​Patterns.​Model

Post­Sharp.​Patterns.​Model.​Controls

Post­Sharp.​Patterns.​Model.​Type­Adapters

Post­Sharp.​Patterns.​Recording

Post­Sharp.​Patterns.​Recording.​Operations

Post­Sharp.​Patterns.​Threading

Post­Sharp.​Patterns.​Threading.​Models

Post­Sharp.​Patterns.​Utilities

Post­Sharp.​Patterns.​Xaml

Post­Sharp.​Reflection

Post­Sharp.​Reflection.​Method­Body

Post­Sharp.​Serialization

  • Article

Class Log4NetCollectingRepositorySelector

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
Log4NetCollectingRepositorySelector
Implements
IRepositorySelector
Namespace: PostSharp.Patterns.Diagnostics.Backends.Log4Net
Assembly: PostSharp.Patterns.Diagnostics.Backends.Log4Net.dll
Syntax
public class Log4NetCollectingRepositorySelector : IRepositorySelector
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 log4net.Core.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 log4net.Config.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.

Constructors

Name Description
Log4NetCollectingRepositorySelector(IRepositorySelector)

Initializes a new instance of Log4NetCollectingRepositorySelector and creates the relay repository. See Remarks on the class. Consider using the static method RedirectLoggingToPostSharp() instead.

Methods

Name Description
CreateRepository(Assembly, Type)

Creates a new repository for the assembly specified.

CreateRepository(string, Type)

Creates a new repository with the name specified.

ExistsRepository(string)

Test if a named repository exists

GetAllRepositories()

Gets an array of all currently defined repositories.

GetRepository(Assembly)

Gets the log4net.Repository.ILoggerRepository for the specified assembly.

GetRepository(string)

If repositoryName corresponds to the "relay repository", returns that. Otherwise, returns a repository of the type Log4NetCollectionRepository.

RedirectLoggingToPostSharp()

Sets the global log4net.Core.LoggerManager.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

Name Description
LoggerRepositoryCreatedEvent

Event to notify that a logger repository has been created.

  • Navigation