# Home

## Vostok.Logging

Vostok.Logging is a set of [libraries](/logging/prototype/master.md#libraries). Like other popular libraries ([Serilog](https://serilog.net), [Log4net](https://logging.apache.org/log4net/) etc.) it provides diagnostic logging to files, the console, and elsewhere.

Vostok.Logging is not a monolith. The library consists of parts: facade and implementations.

## Peculiarities:

* Efficient built-in [implementations](/logging/prototype/implementations.md) out of the box;<br>
* Logging is tightly integrated into the Vostok ecosystem. If you use the entire Vostok or multiple libraries, you don't need to worry about integration.\
  Read more in the section [integration with other Vostok libraries](/logging/prototype/interaction-with-other-vostok-libraries.md).

## Features:

* **Structured logging**\
  In the Vostok.Logging as in Serilog logs are structured. You can render user-defined properties.\
  Learn more about template syntax [here](/logging/prototype/syntax.md).<br>
* **Fully asynchronous**\
  Calling the `Log` method can't lock the app.<br>
* **Fast work**\
  \*proof\*<br>
* [**Integration with Serilog and Log4Net**](/logging/prototype/integration-with-serilog-log4net.md)\
  If you are already using Serilog or Log4net, create an adapter and you'll get the Vostok facade from the available log.

## Libraries

| Library                                                                | Description                                                                                                                                                                                                                                        |
| ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Logging.Abstractions](https://github.com/vostok/logging.abstractions) | This library is a facade with core logging interfaces and models ([ILog](/logging/prototype/basics.md#ilog), [LogEvent](/logging/prototype/basics.md#logevent), [LogLevel](/logging/prototype/basics.md#loglevel)) and a set of useful extensions. |
| [Logging.Console](https://github.com/vostok/logging.console)           | This library is for a log which outputs events to console. Supports color-marked messages, uses lock-free queue for asynchronous message writing.                                                                                                  |
| [Logging.File](https://github.com/vostok/logging.file)                 | This library is for a log which outputs events to file. Supports rolling-strategies for logs rotation, uses lock-free queue for asynchronous message writing, easy to configure from code and other sources.                                       |
| [Logging.Context](https://github.com/vostok/logging.context)           | Automatically embeds contextual information in the log message.                                                                                                                                                                                    |
| [Logging.Formatting](https://github.com/vostok/logging.formatting)     | This library responsible for rendering messages and log events to text. Used in any standalone text-based log implementation.                                                                                                                      |
| [Logging.Log4Net](https://github.com/vostok/logging.log4net)           | Represents an adapter between Vostok logging interfaces and log4net.                                                                                                                                                                               |
| [Logging.Serilog](https://github.com/vostok/logging.serilog)           | Represents an adapter between Vostok logging interfaces and Serilog.                                                                                                                                                                               |
| [Logging.Hercules](https://github.com/vostok/logging.hercules)         | This library is for a log which outputs events to Hercules.                                                                                                                                                                                        |


---

# 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/prototype/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.
