Sha256: ece8d08b2a8d3349af35a3880c4acb49135fe7d4cdb7539b3470a3f143bb9550

Contents?: true

Size: 1.61 KB

Versions: 20

Compression:

Stored size: 1.61 KB

Contents

require 'logstash-logger'

describe LogStashLogger::MultiLogger do
  include_context 'device'

  # Create a MultiLogger writing to both STDOUT and a StringIO
  subject { multi_logger }

  it { is_expected.to be_a LogStashLogger::MultiLogger }

  it "has multiple loggers" do
    expect(subject.loggers.count).to eq(2)
  end

  it "has one logger per output" do
    expect(subject.loggers[0].device).to be_a LogStashLogger::Device::Stdout
    expect(subject.loggers[1].device).to be_a LogStashLogger::Device::IO
  end

  it "allows a different formatter for each logger" do
    expect(subject.loggers[0].formatter.class).to eq ::Logger::Formatter
    expect(subject.loggers[1].formatter.class).to eq LogStashLogger::Formatter::JsonLines
  end

  it "logs to all loggers" do
    subject.loggers.each do |logger|
      expect(logger).to receive(:info).with("test")
    end

    subject.info("test")
  end

  it "supports silenced logging" do
    subject.loggers.each do |logger|
      expect(logger).to receive(:silence).and_call_original
      expect(logger.device).to receive(:write).once
    end

    subject.silence(::Logger::WARN) do |logger|
      expect(logger).to eq(subject)
      logger.info 'info'
      logger.warn 'warning'
    end
  end

  it "supports tagged logging" do
    subject.loggers.each do |logger|
      expect(logger).to receive(:tagged).with('tag').and_call_original
      expect(logger.device).to receive(:write) do |event_string|
        event = JSON.parse(event_string)
        expect(event['tags']).to match_array(['tag'])
      end
    end

    subject.tagged('tag') do |logger|
      logger.info 'test'
    end
  end
end

Version data entries

20 entries across 20 versions & 3 rubygems

Version Path
logstash-logger-p-0.26.1 spec/multi_logger_spec.rb
logstash-logger-yajl-0.27.0 spec/multi_logger_spec.rb
logstash-logger-0.26.1 spec/multi_logger_spec.rb
logstash-logger-0.26.0 spec/multi_logger_spec.rb
logstash-logger-0.25.1 spec/multi_logger_spec.rb
logstash-logger-0.25.0 spec/multi_logger_spec.rb
logstash-logger-0.24.1 spec/multi_logger_spec.rb
logstash-logger-0.24.0 spec/multi_logger_spec.rb
logstash-logger-0.23.0 spec/multi_logger_spec.rb
logstash-logger-0.22.1 spec/multi_logger_spec.rb
logstash-logger-0.22.0 spec/multi_logger_spec.rb
logstash-logger-0.21.0 spec/multi_logger_spec.rb
logstash-logger-0.20.1 spec/multi_logger_spec.rb
logstash-logger-0.20.0 spec/multi_logger_spec.rb
logstash-logger-0.19.2 spec/multi_logger_spec.rb
logstash-logger-0.19.1 spec/multi_logger_spec.rb
logstash-logger-0.19.0 spec/multi_logger_spec.rb
logstash-logger-0.18.1 spec/multi_logger_spec.rb
logstash-logger-0.18.0 spec/multi_logger_spec.rb
logstash-logger-0.17.0 spec/multi_logger_spec.rb