diff options
Diffstat (limited to 'yt/cpp/mapreduce/interface/logging/structured.cpp')
| -rw-r--r-- | yt/cpp/mapreduce/interface/logging/structured.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/yt/cpp/mapreduce/interface/logging/structured.cpp b/yt/cpp/mapreduce/interface/logging/structured.cpp new file mode 100644 index 00000000000..ab5a4f2626f --- /dev/null +++ b/yt/cpp/mapreduce/interface/logging/structured.cpp @@ -0,0 +1,43 @@ +#include "structured.h" + +#include <yt/yt/core/logging/config.h> +#include <yt/yt/core/logging/file_log_writer.h> + +#include <yt/yt/core/misc/fs.h> + +namespace NYT::NDetail { + +using namespace NLogging; + +//////////////////////////////////////////////////////////////////////////////// + +void InitializeStructuredLogging( + TLogManagerConfigPtr logManagerConfig, + const TString& structuredLogPath) +{ + auto ruleConfig = New<TRuleConfig>(); + ruleConfig->MinLevel = ELogLevel::Info; + ruleConfig->Writers.push_back(StructuredLogTypeName); + ruleConfig->IncludeCategories = {"Structured"}; + + auto writerConfig = New<TFileLogWriterConfig>(); + writerConfig->Type = StructuredLogTypeName; + writerConfig->FileName = NFS::NormalizePathSeparators(structuredLogPath); + writerConfig->Format = ELogFormat::Json; + + logManagerConfig->Rules.emplace_back(std::move(ruleConfig)); + + EmplaceOrCrash( + logManagerConfig->Writers, + StructuredLogTypeName, + ConvertTo<NYTree::IMapNodePtr>(writerConfig)); +} + +void RegisterStructuredLogWriterFactory() +{ + TLogManager::Get()->RegisterWriterFactory(StructuredLogTypeName, GetFileLogWriterFactory()); +} + +//////////////////////////////////////////////////////////////////////////////// + +} // namespace NYT::NDetail |
