aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/logger/stream.cpp
diff options
context:
space:
mode:
authorm-milkin <m-milkin@yandex-team.com>2023-04-14 15:40:27 +0300
committerm-milkin <m-milkin@yandex-team.com>2023-04-14 15:40:27 +0300
commitfb642d882910bcf70b25fa17c3de522e61b4ac84 (patch)
tree5eb54fe4209510f211280aaaba63ede17ad1e2ea /library/cpp/logger/stream.cpp
parent8c60d32628e9e0c4659bd837a357b08973070031 (diff)
downloadydb-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.cpp21
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() {
+}