PostSharp Logging allows you to add logging to your complete solution in just a few lines of code.
It has the following benefits:
Can produce super-detailed logs including parameter values and execution time.
Can stay turned off by default and be dynamically enabled on-demand, with fine-grained control over types and namespaces, when a problem happens in production.
Super fast. In fact, faster than string.Format.
Fully customizable. Works with your logging framework (even your custom one)
Supports a broad set of logging frameworks.
Supports structured log servers (such as Elastic Search or Application Insights) and statistical processing of messages.
Supports distributed systems and helps generating correlation info.
This article shows how to add detailed logging to your application.
This article shows how to connect PostSharp Logging to supported logging frameworks.
This article describes how to customize the log records. It covers both build-time configuration (logging profiles) and run-time configuration.
This article explains how to add manual log records and custom activities to your log.
This article shows how to enable and disable logging for a specific type and namespace, and message severity.
This article explains how to configure PostSharp Logging to make sure that the produced logs are useful and meaningful in a distributed system.
This article shows how to log only a fraction of all requests or transactions to save storage and bandwidth, but still include the log of relevant requests.
This article shows how to create your own formatter to display the value of parameter values.
This article demonstrates how to use your own logging framework with PostSharp Logging.
This article describes important details about licensing of PostSharp Logging.
This article explains what happens when the logging component fails and how to customize this behavior.
This article lists breaking changes made in the current and previous versions of PostSharp Logging and how to cope with them.