diff options
author | m-milkin <m-milkin@yandex-team.com> | 2023-04-14 15:40:27 +0300 |
---|---|---|
committer | m-milkin <m-milkin@yandex-team.com> | 2023-04-14 15:40:27 +0300 |
commit | fb642d882910bcf70b25fa17c3de522e61b4ac84 (patch) | |
tree | 5eb54fe4209510f211280aaaba63ede17ad1e2ea /library/cpp/logger/stream.cpp | |
parent | 8c60d32628e9e0c4659bd837a357b08973070031 (diff) | |
download | ydb-fb642d882910bcf70b25fa17c3de522e61b4ac84.tar.gz |
[library/cpp/logger] Support meta flags with TLogElement
Support opportunity to use TMetaFlags with TLogElement.
**Use example:**
`Log().With("Property", "Value").With("Code", "Code") << LogMessage`
Such interface allows to not parse required by TLogBackend properties from raw string.
Diffstat (limited to 'library/cpp/logger/stream.cpp')
-rw-r--r-- | library/cpp/logger/stream.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/library/cpp/logger/stream.cpp b/library/cpp/logger/stream.cpp index 96787ad94ba..73cd5030ace 100644 --- a/library/cpp/logger/stream.cpp +++ b/library/cpp/logger/stream.cpp @@ -3,6 +3,7 @@ #include <util/stream/output.h> + TStreamLogBackend::TStreamLogBackend(IOutputStream* slave) : Slave_(slave) { @@ -17,3 +18,23 @@ void TStreamLogBackend::WriteData(const TLogRecord& rec) { void TStreamLogBackend::ReopenLog() { } + +TStreamWithContextLogBackend::TStreamWithContextLogBackend(IOutputStream* slave) + : Slave_(slave) +{ +} + +TStreamWithContextLogBackend::~TStreamWithContextLogBackend() { +} + +void TStreamWithContextLogBackend::WriteData(const TLogRecord& rec) { + Slave_->Write(rec.Data, rec.Len); + Slave_->Write(DELIMITER); + for (const auto& [key, value] : rec.MetaFlags) { + Slave_->Write(TString::Join(key, "=", value)); + Slave_->Write(DELIMITER); + } +} + +void TStreamWithContextLogBackend::ReopenLog() { +} |