# Home

## Vostok.Logging in a nutshell

Vostok.Logging is a [set](https://vostok.gitbook.io/logging/modules) of libraries providing structured logging for .NET applications, much like [Serilog](https://serilog.net/), but tightly integrated into Vostok ecosystem.

## Guiding design principles

* **Logging system should not be able to significantly impact application health or performance.**

  * [Guarantees](https://vostok.gitbook.io/logging/guarantees) section covers this topic in greater detail.

* **Configuration is done in code**.

  * Configuring and composing loggers in code is preferable to clumsy XML files. See [Configuration](https://vostok.gitbook.io/logging/configuration) section for an in-depth discussion.

* **Extensibility is valued.**

  * The libraries are designed in a way that encourages creating custom implementations of logs and decorators.

* **Performance is of essence.**
  * Implementations go to great lengths to provide a throughput level sufficient for applications handling tens or even hundreds of thousands of requests per second.

## Features

* **Structured logging**

  * [Log events](https://vostok.gitbook.io/logging/concepts/log-events) contain key-value properties which are later used for querying the log data or rendering it to text.

* **Reliable built-in log implementations**

  * [Console](https://vostok.gitbook.io/logging/implementations/console-log), [file](https://vostok.gitbook.io/logging/implementations/file-log) and [Hercules](https://vostok.gitbook.io/logging/implementations/hercules-log) logs comply to strict [guarantees](https://vostok.gitbook.io/logging/guarantees) and offer solid performance.

* **Easy configuration**

  * Most log implementations require just one line of code to set up (see [Quickstart](https://vostok.gitbook.io/logging/quick-start)).

* **Customizable formatting**

  * Output produced by text-based logs ([console](https://vostok.gitbook.io/logging/implementations/console-log) and [file](https://vostok.gitbook.io/logging/implementations/file-log)) can be customized with [output templates](https://vostok.gitbook.io/logging/concepts/formatting/output-templates).

* **Filtering of log events**

  * There's built-in support for [filtering](https://vostok.gitbook.io/logging/how-to-guides/filtering-events-by-level) by level, properties or arbitrary contents of [log events](https://vostok.gitbook.io/logging/concepts/log-events).

* **Enrichment of log events with custom properties**

  * Log events can be dynamically [enriched](https://vostok.gitbook.io/logging/how-to-guides/enriching-events-with-custom-properties) with new properties either specified by user or provided from ambient context.

* **Support for contextual information tied to log events**

  * Explore the [source](https://vostok.gitbook.io/logging/concepts/source-context) and [operation](https://vostok.gitbook.io/logging/concepts/operation-context) context sections to learn more.

* **Integrations with other popular logging libraries**

  * There are adapters available for [Serilog](https://vostok.gitbook.io/logging/integrations/serilog), [log4net](https://vostok.gitbook.io/logging/integrations/log4net) and [Microsoft.Extensions.Logging](https://vostok.gitbook.io/logging/integrations/microsoft-logging).

## Good starting points

{% content-ref url="quick-start" %}
[quick-start](https://vostok.gitbook.io/logging/quick-start)
{% endcontent-ref %}

{% content-ref url="modules" %}
[modules](https://vostok.gitbook.io/logging/modules)
{% endcontent-ref %}

{% content-ref url="concepts/log-interface" %}
[log-interface](https://vostok.gitbook.io/logging/concepts/log-interface)
{% endcontent-ref %}

{% content-ref url="concepts/log-events" %}
[log-events](https://vostok.gitbook.io/logging/concepts/log-events)
{% endcontent-ref %}

{% content-ref url="concepts/syntax" %}
[syntax](https://vostok.gitbook.io/logging/concepts/syntax)
{% endcontent-ref %}
