1
#include "source/extensions/access_loggers/common/file_access_log_impl.h"
2

            
3
namespace Envoy {
4
namespace Extensions {
5
namespace AccessLoggers {
6
namespace File {
7

            
8
FileAccessLog::FileAccessLog(const Filesystem::FilePathAndType& access_log_file_info,
9
                             AccessLog::FilterPtr&& filter, Formatter::FormatterPtr&& formatter,
10
                             AccessLog::AccessLogManager& log_manager)
11
20714
    : ImplBase(std::move(filter)), formatter_(std::move(formatter)) {
12
20714
  auto file_or_error = log_manager.createAccessLog(access_log_file_info);
13
20714
  THROW_IF_NOT_OK_REF(file_or_error.status());
14
20714
  log_file_ = file_or_error.value();
15
20714
}
16

            
17
void FileAccessLog::emitLog(const Formatter::Context& context,
18
74715
                            const StreamInfo::StreamInfo& stream_info) {
19
74715
  log_file_->write(formatter_->format(context, stream_info));
20
74715
}
21

            
22
} // namespace File
23
} // namespace AccessLoggers
24
} // namespace Extensions
25
} // namespace Envoy