> For the complete documentation index, see [llms.txt](https://vostok.gitbook.io/logging/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vostok.gitbook.io/logging/master.md).

# Home

## Vostok.Logging in a nutshell

Vostok.Logging is a [set](/logging/modules.md) 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](/logging/guarantees.md) 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](/logging/configuration.md) 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](/logging/concepts/log-events.md) contain key-value properties which are later used for querying the log data or rendering it to text.

* **Reliable built-in log implementations**

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

* **Easy configuration**

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

* **Customizable formatting**

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

* **Filtering of log events**

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

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

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

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

  * Explore the [source](/logging/concepts/source-context.md) and [operation](/logging/concepts/operation-context.md) context sections to learn more.

* **Integrations with other popular logging libraries**

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

## Good starting points

{% content-ref url="/pages/-LM2UT1CQiJRwiNtXB2x" %}
[Quickstart](/logging/quick-start.md)
{% endcontent-ref %}

{% content-ref url="/pages/-L\_Wofcuuqqp888I0mZj" %}
[Modules](/logging/modules.md)
{% endcontent-ref %}

{% content-ref url="/pages/-L\_WmyQa0gQ\_tru8kYBS" %}
[Log interface](/logging/concepts/log-interface.md)
{% endcontent-ref %}

{% content-ref url="/pages/-L\_WmtfmJJw6dFMMmLTg" %}
[Log events](/logging/concepts/log-events.md)
{% endcontent-ref %}

{% content-ref url="/pages/-L\_Wn51SzM0CA1\_Xp2-v" %}
[Syntax](/logging/concepts/syntax.md)
{% endcontent-ref %}
