userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
component.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/ugrpc/server/middlewares/access_log/component.hpp
4
/// @brief @copybrief ugrpc::server::middlewares::access_log::Component
5
6
#
include
<
userver
/
logging
/
component
.
hpp
>
7
8
#
include
<
userver
/
ugrpc
/
server
/
middlewares
/
base
.
hpp
>
9
10
USERVER_NAMESPACE_BEGIN
11
12
/// Server access_log middleware
13
/// @see @ref scripts/docs/en/userver/grpc/server_middlewares.md
14
/// @see @ref ugrpc::server::middlewares::access_log::Component
15
namespace
ugrpc::server::middlewares::
access_log
{
16
17
/// @brief Storage to handle additional fields in access_log
18
/// @snippet grpc/tests/logging/access_log_test.cpp grpc log extra tag
19
inline
const
utils
::AnyStorageDataTag<ugrpc::server::
StorageContext
, logging::LogExtra>
kLogExtraTag
;
20
21
/// @ingroup userver_components userver_base_classes
22
///
23
/// @brief gRPC server access log middleware component. Writes one TSKV log line per handled RPC in a static format.
24
/// This log is intended to be collected, parsed and stored for audit or extended statistics purposes.
25
///
26
/// This middleware is disabled and unregistered by default.
27
///
28
/// ## Static options of ugrpc::server::middlewares::access_log::Component :
29
/// @include{doc} scripts/docs/en/components_schema/grpc/src/ugrpc/server/middlewares/access_log/component.md
30
///
31
/// Options inherited from @ref middlewares::MiddlewareFactoryComponentBase :
32
/// @include{doc} scripts/docs/en/components_schema/core/src/middlewares/factory_component_base.md
33
///
34
/// Options inherited from @ref components::ComponentBase :
35
/// @include{doc} scripts/docs/en/components_schema/core/src/components/impl/component_base.md
36
///
37
/// The component name for static config is `"grpc-server-access-log"`.
38
///
39
/// ## Static configuration example:
40
///
41
/// @snippet grpc/functional_tests/basic_chaos/static_config.yaml grpc server access log
42
///
43
/// @see @ref scripts/docs/en/userver/grpc/server_middlewares.md
44
class
Component
final
:
public
MiddlewareFactoryComponentBase
{
45
public
:
46
/// @ingroup userver_component_names
47
/// @brief The default name of ugrpc::server::middlewares::access_log::Component
48
static
constexpr
std::string_view
kName
=
"grpc-server-access-log"
;
49
50
Component(
const
components
::ComponentConfig& config,
const
components
::ComponentContext& context);
51
52
std::shared_ptr<
const
MiddlewareBase> CreateMiddleware(
53
const
ugrpc::server::ServiceInfo&,
54
const
yaml_config::
YamlConfig
& middleware_config
55
)
const
override
;
56
57
yaml_config::Schema
GetMiddlewareConfigSchema
()
const
override
;
58
59
static
yaml_config::Schema GetStaticConfigSchema();
60
61
private
:
62
components
::Logging& logging_component_;
63
};
64
65
}
// namespace ugrpc::server::middlewares::access_log
66
67
template
<>
68
inline
constexpr
bool
components
::kHasValidate<ugrpc::server::middlewares::access_log::Component> =
true
;
69
70
template
<>
71
inline
constexpr
auto
72
components
::kConfigFileMode<ugrpc::server::middlewares::access_log::Component> =
ConfigFileMode
::
kNotRequired
;
73
74
USERVER_NAMESPACE_END
userver
ugrpc
server
middlewares
access_log
component.hpp
Generated on
for userver by
Doxygen
1.17.0