1
#include "source/extensions/access_loggers/fluentd/substitution_formatter.h"
2

            
3
#include "envoy/stream_info/stream_info.h"
4

            
5
#include "source/common/json/json_loader.h"
6

            
7
namespace Envoy {
8
namespace Extensions {
9
namespace AccessLoggers {
10
namespace Fluentd {
11

            
12
FluentdFormatterImpl::FluentdFormatterImpl(Formatter::FormatterPtr json_formatter)
13
8
    : json_formatter_(std::move(json_formatter)) {}
14

            
15
std::vector<uint8_t> FluentdFormatterImpl::format(const Formatter::Context& context,
16
11
                                                  const StreamInfo::StreamInfo& stream_info) const {
17
11
  auto json_string = json_formatter_->format(context, stream_info);
18
11
  return Json::Factory::jsonToMsgpack(json_string);
19
11
}
20

            
21
} // namespace Fluentd
22
} // namespace AccessLoggers
23
} // namespace Extensions
24
} // namespace Envoy