userver: userver/ugrpc/client/middlewares/log/component.hpp Source File
Loading...
Searching...
No Matches
component.hpp
1#pragma once
2
3/// @file userver/ugrpc/client/middleware/log/component.hpp
4/// @brief @copybrief ugrpc::client::middlewares::log::Component
5
6#include <userver/ugrpc/client/middlewares/base.hpp>
7#include <userver/utils/box.hpp>
8
9USERVER_NAMESPACE_BEGIN
10
11/// Client logging middleware
12namespace ugrpc::client::middlewares::log {
13
14struct Settings;
15
16// clang-format off
17
18/// @ingroup userver_components
19///
20/// @brief Component for gRPC client logging
21///
22/// ## Static options:
23/// Name | Description | Default value
24/// ---- | ----------- | -------------
25/// log-level | log level for msg logging | debug
26/// msg-size-log-limit | max message size to log, the rest will be truncated | 512
27
28// clang-format on
29
30class Component final : public MiddlewareComponentBase {
31 public:
32 /// @ingroup userver_component_names
33 /// @brief The default name of ugrpc::client::middlewares::log::Component
34 static constexpr std::string_view kName = "grpc-client-logging";
35
36 Component(const components::ComponentConfig& config,
37 const components::ComponentContext& context);
38
39 ~Component() override;
40
41 std::shared_ptr<const MiddlewareFactoryBase> GetMiddlewareFactory() override;
42
43 static yaml_config::Schema GetStaticConfigSchema();
44
45 private:
46 const utils::Box<Settings> settings_;
47};
48
49} // namespace ugrpc::client::middlewares::log
50
51USERVER_NAMESPACE_END