1
#pragma once
2

            
3
#include "envoy/access_log/access_log_config.h"
4

            
5
namespace Envoy {
6
namespace Extensions {
7
namespace AccessLoggers {
8
namespace File {
9

            
10
/**
11
 * Config registration for the standard output access log. @see AccessLogInstanceFactory.
12
 */
13
class StdoutAccessLogFactory : public AccessLog::AccessLogInstanceFactory {
14
public:
15
  AccessLog::InstanceSharedPtr
16
  createAccessLogInstance(const Protobuf::Message& config, AccessLog::FilterPtr&& filter,
17
                          Server::Configuration::GenericFactoryContext& context,
18
                          std::vector<Formatter::CommandParserPtr>&& command_parsers = {}) override;
19

            
20
  ProtobufTypes::MessagePtr createEmptyConfigProto() override;
21

            
22
  std::string name() const override;
23
};
24

            
25
/**
26
 * Config registration for the standard error access log. @see AccessLogInstanceFactory.
27
 */
28
class StderrAccessLogFactory : public AccessLog::AccessLogInstanceFactory {
29
public:
30
  AccessLog::InstanceSharedPtr
31
  createAccessLogInstance(const Protobuf::Message& config, AccessLog::FilterPtr&& filter,
32
                          Server::Configuration::GenericFactoryContext& context,
33
                          std::vector<Formatter::CommandParserPtr>&& command_parsers = {}) override;
34

            
35
  ProtobufTypes::MessagePtr createEmptyConfigProto() override;
36

            
37
  std::string name() const override;
38
};
39

            
40
} // namespace File
41
} // namespace AccessLoggers
42
} // namespace Extensions
43
} // namespace Envoy