1
#include "source/extensions/access_loggers/stream/config.h"
2

            
3
#include <memory>
4

            
5
#include "envoy/extensions/access_loggers/stream/v3/stream.pb.h"
6
#include "envoy/extensions/access_loggers/stream/v3/stream.pb.validate.h"
7
#include "envoy/registry/registry.h"
8
#include "envoy/server/filter_config.h"
9

            
10
#include "source/common/common/logger.h"
11
#include "source/common/config/utility.h"
12
#include "source/common/formatter/substitution_format_string.h"
13
#include "source/common/formatter/substitution_formatter.h"
14
#include "source/common/protobuf/protobuf.h"
15
#include "source/extensions/access_loggers/common/file_access_log_impl.h"
16
#include "source/extensions/access_loggers/common/stream_access_log_common_impl.h"
17

            
18
namespace Envoy {
19
namespace Extensions {
20
namespace AccessLoggers {
21
namespace File {
22

            
23
AccessLog::InstanceSharedPtr StdoutAccessLogFactory::createAccessLogInstance(
24
    const Protobuf::Message& config, AccessLog::FilterPtr&& filter,
25
    Server::Configuration::GenericFactoryContext& context,
26
25
    std::vector<Formatter::CommandParserPtr>&& command_parsers) {
27
25
  return AccessLoggers::createStreamAccessLogInstance<
28
25
      envoy::extensions::access_loggers::stream::v3::StdoutAccessLog,
29
25
      Filesystem::DestinationType::Stdout>(config, std::move(filter), context,
30
25
                                           std::move(command_parsers));
31
25
}
32

            
33
39
ProtobufTypes::MessagePtr StdoutAccessLogFactory::createEmptyConfigProto() {
34
39
  return ProtobufTypes::MessagePtr{
35
39
      new envoy::extensions::access_loggers::stream::v3::StdoutAccessLog()};
36
39
}
37

            
38
64
std::string StdoutAccessLogFactory::name() const { return "envoy.access_loggers.stdout"; }
39

            
40
/**
41
 * Static registration for the file access log. @see RegisterFactory.
42
 */
43
LEGACY_REGISTER_FACTORY(StdoutAccessLogFactory, AccessLog::AccessLogInstanceFactory,
44
                        "envoy.stdout_access_log");
45

            
46
AccessLog::InstanceSharedPtr StderrAccessLogFactory::createAccessLogInstance(
47
    const Protobuf::Message& config, AccessLog::FilterPtr&& filter,
48
    Server::Configuration::GenericFactoryContext& context,
49
4
    std::vector<Formatter::CommandParserPtr>&& command_parsers) {
50
4
  return createStreamAccessLogInstance<
51
4
      envoy::extensions::access_loggers::stream::v3::StderrAccessLog,
52
4
      Filesystem::DestinationType::Stderr>(config, std::move(filter), context,
53
4
                                           std::move(command_parsers));
54
4
}
55

            
56
18
ProtobufTypes::MessagePtr StderrAccessLogFactory::createEmptyConfigProto() {
57
18
  return ProtobufTypes::MessagePtr{
58
18
      new envoy::extensions::access_loggers::stream::v3::StderrAccessLog()};
59
18
}
60

            
61
64
std::string StderrAccessLogFactory::name() const { return "envoy.access_loggers.stderr"; }
62

            
63
/**
64
 * Static registration for the `stderr` access log. @see RegisterFactory.
65
 */
66
LEGACY_REGISTER_FACTORY(StderrAccessLogFactory, AccessLog::AccessLogInstanceFactory,
67
                        "envoy.stderr_access_log");
68

            
69
} // namespace File
70
} // namespace AccessLoggers
71
} // namespace Extensions
72
} // namespace Envoy