Module: LogStashLogger
- Defined in:
- lib/logstash-logger/buffer.rb,
lib/logstash-logger/device.rb,
lib/logstash-logger/logger.rb,
lib/logstash-logger/railtie.rb,
lib/logstash-logger/version.rb,
lib/logstash-logger/device/io.rb,
lib/logstash-logger/formatter.rb,
lib/logstash-logger/device/tcp.rb,
lib/logstash-logger/device/udp.rb,
lib/logstash-logger/device/base.rb,
lib/logstash-logger/device/file.rb,
lib/logstash-logger/device/http.rb,
lib/logstash-logger/device/unix.rb,
lib/logstash-logger/device/kafka.rb,
lib/logstash-logger/device/redis.rb,
lib/logstash-logger/multi_logger.rb,
lib/logstash-logger/configuration.rb,
lib/logstash-logger/device/socket.rb,
lib/logstash-logger/device/stderr.rb,
lib/logstash-logger/device/stdout.rb,
lib/logstash-logger/formatter/cee.rb,
lib/logstash-logger/device/kinesis.rb,
lib/logstash-logger/formatter/base.rb,
lib/logstash-logger/formatter/json.rb,
lib/logstash-logger/tagged_logging.rb,
lib/logstash-logger/device/balancer.rb,
lib/logstash-logger/device/firehose.rb,
lib/logstash-logger/silenced_logging.rb,
lib/logstash-logger/device/aws_stream.rb,
lib/logstash-logger/device/connectable.rb,
lib/logstash-logger/formatter/cee_syslog.rb,
lib/logstash-logger/formatter/json_lines.rb,
lib/logstash-logger/device/multi_delegator.rb,
lib/logstash-logger/formatter/logstash_event.rb
Overview
Defined Under Namespace
Modules: Buffer, Device, Formatter, SilencedLogging, TaggedLogging
Classes: Configuration, MultiLogger, Railtie
Constant Summary
collapse
- VERSION =
"1.0.0"
Class Method Summary
collapse
Class Method Details
.build_default_logger(opts) ⇒ Object
58
59
60
61
62
63
64
65
|
# File 'lib/logstash-logger/logger.rb', line 58
def self.build_default_logger(opts)
logger_class = opts.delete(:logger_class) || ::Logger
device = Device.new(opts)
logger_class.new(device).tap do |logger|
logger.instance_variable_set(:@device, device)
extend_logger(logger)
end
end
|
.build_logger(opts) ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/logstash-logger/logger.rb', line 38
def self.build_logger(opts)
formatter = Formatter.new(opts.delete(:formatter),
customize_event: opts.delete(:customize_event),
error_logger: opts.fetch(:error_logger, LogStashLogger.configuration.default_error_logger))
logger_type = opts[:type].to_s.to_sym
logger = case logger_type
when :multi_logger
build_multi_logger(opts)
when :syslog
build_syslog_logger(opts)
else
build_default_logger(opts)
end
logger.formatter = formatter if formatter
logger
end
|
.build_multi_logger(opts) ⇒ Object
67
68
69
70
71
72
73
74
|
# File 'lib/logstash-logger/logger.rb', line 67
def self.build_multi_logger(opts)
output_configurations = opts.delete(:outputs) || []
loggers = output_configurations.map do |config|
logger_opts = opts.merge(config)
build_logger(logger_opts)
end
MultiLogger.new(loggers)
end
|
.build_syslog_logger(opts) ⇒ Object
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/logstash-logger/logger.rb', line 76
def self.build_syslog_logger(opts)
logger = begin
require 'syslog/logger'
Syslog::Logger.new(opts[:program_name], opts[:facility])
rescue ArgumentError
Syslog::Logger.new(opts[:program_name])
end
extend_logger(logger)
end
|
3
4
5
6
|
# File 'lib/logstash-logger/configuration.rb', line 3
def configure(&block)
@configuration = Configuration.new(&block) if block_given? || @configuration.nil?
@configuration
end
|
.extend_logger(logger) ⇒ Object
88
89
90
91
92
|
# File 'lib/logstash-logger/logger.rb', line 88
def self.extend_logger(logger)
logger.extend(self)
logger.extend(TaggedLogging)
logger.extend(SilencedLogging)
end
|
.extended(base) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/logstash-logger/logger.rb', line 13
def self.extended(base)
base.instance_eval do
class << self
attr_reader :device
end
def flush
!!(@device.flush if @device.respond_to?(:flush))
end
def reset
@device.reset if @device.respond_to?(:reset)
end
end
end
|
30
31
32
33
34
35
36
|
# File 'lib/logstash-logger/logger.rb', line 30
def self.(*args)
if args.length == 1 && args[0].is_a?(Hash)
args[0]
else
fail ArgumentError, "Invalid LogStashLogger options. Expected a single options hash."
end
end
|
.new(*args) ⇒ Object
8
9
10
11
|
# File 'lib/logstash-logger/logger.rb', line 8
def self.new(*args)
opts = (*args)
build_logger(opts)
end
|
.sanitize_logger_options(app, logger_options) ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/logstash-logger/railtie.rb', line 24
def self.sanitize_logger_options(app, logger_options)
logger_options = ActiveSupport::OrderedOptions.new.merge(logger_options)
if (parsed_uri_options = LogStashLogger::Device.parse_uri_config(logger_options))
logger_options.delete(:uri)
logger_options.merge!(parsed_uri_options)
end
if logger_options.type == :file
logger_options.path ||= app.config.paths["log"].first
end
if app.config.respond_to?(:autoflush_log)
logger_options.sync = app.config.autoflush_log
end
logger_options
end
|
.setup(app) ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/logstash-logger/railtie.rb', line 4
def self.setup(app)
return unless app.config.logstash.present?
logger_options = app.config.logstash
sanitized_logger_options = if logger_options.is_a?(Array)
logger_options.map do |opts|
sanitize_logger_options(app, opts)
end
else
sanitize_logger_options(app, logger_options)
end
logger = LogStashLogger.new(sanitized_logger_options)
logger.level = ::Logger.const_get(app.config.log_level.to_s.upcase)
app.config.logger = logger
end
|