userver: userver/ugrpc/server/middlewares/log/component.hpp Source File
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
component.hpp
1#pragma once
2
3/// @file userver/ugrpc/server/logging/component.hpp
4/// @brief @copybrief ugrpc::server::middlewares::log::Component
5
6#include <optional>
7
8#include <userver/ugrpc/server/middlewares/base.hpp>
9
10USERVER_NAMESPACE_BEGIN
11
12/// Server logging middleware
13namespace ugrpc::server::middlewares::log {
14
15// clang-format off
16
17/// @ingroup userver_components userver_base_classes
18///
19/// @brief Component for gRPC server logging
20///
21/// ## Static options:
22/// Name | Description | Default value
23/// ---- | ----------- | -------------
24/// log-level | log level for msg logging | debug
25/// msg-size-log-limit | max message size to log, the rest will be truncated | 512
26
27// clang-format on
28
29class Component final : public MiddlewareComponentBase {
30 public:
31 static constexpr std::string_view kName = "grpc-server-logging";
32
33 Component(const components::ComponentConfig& config,
34 const components::ComponentContext& context);
35
36 std::shared_ptr<MiddlewareBase> GetMiddleware() override;
37
38 static yaml_config::Schema GetStaticConfigSchema();
39
40 private:
41 std::size_t max_size_;
42 logging::Level msg_log_level_;
43 std::optional<logging::Level> local_log_level_;
44};
45
46} // namespace ugrpc::server::middlewares::log
47
48USERVER_NAMESPACE_END