blob: f85e9ebb69862c2b426e8e9d7fd1a4ef5f856a0a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include "composite_creator.h"
#include "composite.h"
#include "uninitialized_creator.h"
THolder<TLogBackend> TCompositeBackendCreator::DoCreateLogBackend() const {
auto res = MakeHolder<TCompositeLogBackend>();
for (const auto& child : Children) {
res->AddLogBackend(child->CreateLogBackend());
}
return std::move(res);
}
TCompositeBackendCreator::TCompositeBackendCreator()
: TLogBackendCreatorBase("composite")
{}
bool TCompositeBackendCreator::Init(const IInitContext& ctx) {
for (const auto& child : ctx.GetChildren("SubLogger")) {
Children.emplace_back(MakeHolder<TLogBackendCreatorUninitialized>());
if (!Children.back()->Init(*child)) {
return false;
}
}
return true;
}
ILogBackendCreator::TFactory::TRegistrator<TCompositeBackendCreator> TCompositeBackendCreator::Registrar("composite");
void TCompositeBackendCreator::DoToJson(NJson::TJsonValue& value) const {
for (const auto& child: Children) {
child->ToJson(value["SubLogger"].AppendValue(NJson::JSON_MAP));
}
}
|