#pragma once #include #include #include #include #include // Formats a single log record as one Deploy JSON line (with trailing '\n'). // See https://deploy.yandex-team.ru/docs/logs/format TString FormatDeployJsonLogRecord( const TLogRecord& rec, TStringBuf loggerName = {}); // Wraps a slave backend and rewrites each record as Deploy JSON. // // Must be a backend (not TLog::SetFormatter): MetaFlags are only available in // TLogBackend::WriteData. // // Recommended stack (outer → inner): // Filter → Thread → TDeployJsonLogBackend → sink class TDeployJsonLogBackend: public TLogBackend { public: explicit TDeployJsonLogBackend( THolder slave, TString loggerName = {}); void WriteData(const TLogRecord& rec) override; void ReopenLog() override; private: THolder Slave_; TString LoggerName_; };