# 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vostok.gitbook.io/logging/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
