silencer 0.6.0 → 1.0.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +2 -0
- data/lib/silencer/environment.rb +37 -0
- data/lib/silencer/hush.rb +19 -0
- data/lib/silencer/logger.rb +7 -25
- data/lib/silencer/rack/logger.rb +27 -0
- data/lib/silencer/rails/logger.rb +47 -0
- data/lib/silencer/util.rb +25 -0
- data/lib/silencer/version.rb +1 -1
- data/silencer.gemspec +9 -7
- data/{.gemtest → spec/log/test.log} +0 -0
- data/spec/silencer/rack/logger_spec.rb +33 -0
- data/spec/silencer/rails/logger_spec.rb +54 -0
- data/spec/spec_helper.rb +29 -2
- metadata +22 -38
- data/.gitignore +0 -17
- data/.rspec +0 -3
- data/.travis.yml +0 -14
- data/Gemfile +0 -16
- data/Guardfile +0 -21
- data/spec/silencer_spec.rb +0 -63
data/README.md
CHANGED
@@ -5,6 +5,8 @@
|
|
5
5
|
|
6
6
|
Silencer is a simple rack-middleware for Rails that can selectively disable logging on per-action basis. It's based on a [blog post](http://dennisreimann.de/blog/silencing-the-rails-log-on-a-per-action-basis/) by Dennis Reimann.
|
7
7
|
|
8
|
+
__Note__: Silencer is not thread safe.
|
9
|
+
|
8
10
|
## Installation
|
9
11
|
|
10
12
|
Just add silencer to your Gemfile:
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Silencer
|
2
|
+
module Environment
|
3
|
+
|
4
|
+
RAILS_2_3 = %r{^2.3}
|
5
|
+
RAILS_3_2 = %r{^3.2}
|
6
|
+
RAILS_4 = %r{^4}
|
7
|
+
|
8
|
+
def rails?
|
9
|
+
defined?(::Rails)
|
10
|
+
end
|
11
|
+
|
12
|
+
def rails_version
|
13
|
+
return unless rails?
|
14
|
+
::Rails::VERSION::STRING
|
15
|
+
end
|
16
|
+
|
17
|
+
def rails2?
|
18
|
+
rails_version =~ RAILS_2_3
|
19
|
+
end
|
20
|
+
|
21
|
+
def rails3_2?
|
22
|
+
rails_version =~ RAILS_3_2
|
23
|
+
end
|
24
|
+
|
25
|
+
def rails4?
|
26
|
+
rails_version =~ RAILS_4
|
27
|
+
end
|
28
|
+
|
29
|
+
def tagged_logger?
|
30
|
+
rails3_2? || rails4?
|
31
|
+
end
|
32
|
+
|
33
|
+
module_function :rails?, :rails2?, :rails_version, :rails3_2?
|
34
|
+
module_function :rails4?, :tagged_logger?
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Silencer
|
2
|
+
module Hush
|
3
|
+
|
4
|
+
private
|
5
|
+
|
6
|
+
def silence_request?(env)
|
7
|
+
(silent_header?(env) || silent_path?(env))
|
8
|
+
end
|
9
|
+
|
10
|
+
def silent_header?(env)
|
11
|
+
env['HTTP_X_SILENCE_LOGGER']
|
12
|
+
end
|
13
|
+
|
14
|
+
def silent_path?(env)
|
15
|
+
@silence.any? { |s| s === env['PATH_INFO'] }
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
data/lib/silencer/logger.rb
CHANGED
@@ -1,29 +1,11 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
1
|
+
require 'silencer/environment'
|
2
|
+
require 'silencer/rack/logger'
|
3
|
+
require 'silencer/rails/logger' if Silencer::Environment.rails?
|
3
4
|
|
4
5
|
module Silencer
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
@taggers = taggers.flatten
|
10
|
-
@silence = Array.wrap(opts[:silence])
|
11
|
-
end
|
12
|
-
|
13
|
-
def call(env)
|
14
|
-
old_logger_level = Rails.logger.level
|
15
|
-
Rails.logger.level = ::Logger::ERROR if silence_request?(env)
|
16
|
-
|
17
|
-
super
|
18
|
-
ensure
|
19
|
-
# Return back to previous logging level
|
20
|
-
Rails.logger.level = old_logger_level
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def silence_request?(env)
|
26
|
-
env['HTTP_X_SILENCE_LOGGER'] || @silence.any? { |s| s === env['PATH_INFO'] }
|
27
|
-
end
|
6
|
+
Logger = if Silencer::Environment.rails?
|
7
|
+
Silencer::Rails::Logger
|
8
|
+
else
|
9
|
+
Silencer::Rack::Logger
|
28
10
|
end
|
29
11
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rack/logger'
|
2
|
+
require 'silencer/util'
|
3
|
+
require 'silencer/hush'
|
4
|
+
|
5
|
+
module Silencer
|
6
|
+
module Rack
|
7
|
+
class Logger < ::Rack::Logger
|
8
|
+
include Silencer::Util
|
9
|
+
include Silencer::Hush
|
10
|
+
|
11
|
+
def initialize(app, *args)
|
12
|
+
opts = extract_options!(args)
|
13
|
+
@silence = wrap(opts.delete(:silence))
|
14
|
+
|
15
|
+
super app, *args
|
16
|
+
end
|
17
|
+
|
18
|
+
def call(env)
|
19
|
+
logger = ::Logger.new(env['rack.errors'])
|
20
|
+
logger.level = (silence_request?(env) ? ::Logger::ERROR : @level)
|
21
|
+
|
22
|
+
env['rack.logger'] = logger
|
23
|
+
@app.call(env)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Silencer
|
2
|
+
RailsLogger = if Silencer::Environment.rails2?
|
3
|
+
require 'rails/rack/log_tailer'
|
4
|
+
::Rails::Rack::LogTailer
|
5
|
+
else
|
6
|
+
require 'rails/rack/logger'
|
7
|
+
::Rails::Rack::Logger
|
8
|
+
end
|
9
|
+
|
10
|
+
module Rails
|
11
|
+
class Logger < RailsLogger
|
12
|
+
include Silencer::Util
|
13
|
+
include Silencer::Hush
|
14
|
+
|
15
|
+
def initialize(app, *args)
|
16
|
+
opts = extract_options!(args)
|
17
|
+
@silence = wrap(opts.delete(:silence))
|
18
|
+
|
19
|
+
if normalized_args = normalize(args.flatten)
|
20
|
+
super(app, normalized_args)
|
21
|
+
else
|
22
|
+
super(app)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def call(env)
|
27
|
+
old_logger_level = ::Rails.logger.level
|
28
|
+
::Rails.logger.level = ::Logger::ERROR if silence_request?(env)
|
29
|
+
|
30
|
+
super
|
31
|
+
ensure
|
32
|
+
# Return back to previous logging level
|
33
|
+
::Rails.logger.level = old_logger_level
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def normalize(args)
|
39
|
+
args = case args.size
|
40
|
+
when 0 then nil
|
41
|
+
when 1 then args.shift
|
42
|
+
else args
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Silencer
|
2
|
+
module Util
|
3
|
+
|
4
|
+
def wrap(object)
|
5
|
+
if object.nil?
|
6
|
+
[]
|
7
|
+
elsif object.respond_to?(:to_ary)
|
8
|
+
object.to_ary || [object]
|
9
|
+
else
|
10
|
+
[object]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def extract_options!(args)
|
15
|
+
if args.last.is_a?(Hash)
|
16
|
+
args.pop
|
17
|
+
else
|
18
|
+
{}
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
module_function :wrap, :extract_options!
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
data/lib/silencer/version.rb
CHANGED
data/silencer.gemspec
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'silencer/version'
|
3
5
|
|
4
6
|
Gem::Specification.new do |gem|
|
5
7
|
gem.name = "silencer"
|
@@ -7,13 +9,13 @@ Gem::Specification.new do |gem|
|
|
7
9
|
gem.authors = ["Steve Agalloco"]
|
8
10
|
gem.email = ["steve.agalloco@gmail.com"]
|
9
11
|
gem.homepage = "http://github.com/spagalloco/silencer"
|
10
|
-
gem.description = 'Selectively quiet your Rails logger on a per-
|
12
|
+
gem.description = 'Selectively quiet your Rails/Rack logger on a per-route basis'
|
11
13
|
gem.summary = gem.description
|
12
14
|
|
13
|
-
gem.
|
15
|
+
gem.files = %w(.yardopts LICENSE.md README.md Rakefile silencer.gemspec)
|
16
|
+
gem.files += Dir.glob("lib/**/*.rb")
|
17
|
+
gem.files += Dir.glob("spec/**/*")
|
18
|
+
gem.test_files = Dir.glob("spec/**/*")
|
14
19
|
|
15
|
-
gem.files = `git ls-files`.split("\n")
|
16
|
-
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
-
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
20
|
gem.require_paths = ["lib"]
|
19
21
|
end
|
File without changes
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Silencer::Rack::Logger do
|
4
|
+
let(:app) { lambda { |env| [200, {}, ''] } }
|
5
|
+
|
6
|
+
it 'quiets the log when configured with a silenced path' do
|
7
|
+
expect_any_instance_of(::Logger).to receive(:level=).with(::Logger::ERROR)
|
8
|
+
|
9
|
+
Silencer::Rack::Logger.new(app, :silence => ['/']).
|
10
|
+
call(Rack::MockRequest.env_for("/"))
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'quiets the log when configured with a regex' do
|
14
|
+
expect_any_instance_of(::Logger).to receive(:level=).with(::Logger::ERROR)
|
15
|
+
|
16
|
+
Silencer::Rack::Logger.new(app, :silence => [/assets/]).
|
17
|
+
call(Rack::MockRequest.env_for("/assets/application.css"))
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'quiets the log when passed a custom header "X-SILENCE-LOGGER"' do
|
21
|
+
expect_any_instance_of(::Logger).to receive(:level=).with(::Logger::ERROR)
|
22
|
+
|
23
|
+
Silencer::Rack::Logger.new(app).
|
24
|
+
call(Rack::MockRequest.env_for("/", 'HTTP_X_SILENCE_LOGGER' => 'true'))
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'does not tamper with the response' do
|
28
|
+
response = Silencer::Rack::Logger.new(app).
|
29
|
+
call(Rack::MockRequest.env_for("/", 'HTTP_X_SILENCE_LOGGER' => 'true'))
|
30
|
+
|
31
|
+
expect(response[0]).to eq(200)
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Silencer::Rails::Logger do
|
4
|
+
let(:app) { lambda { |env| [200, {}, ''] } }
|
5
|
+
let(:log_tags) { [:uuid, :queue] }
|
6
|
+
|
7
|
+
it 'quiets the log when configured with a silenced path' do
|
8
|
+
expect(::Rails.logger).to receive(:level=).
|
9
|
+
with(::Logger::ERROR).at_least(:once)
|
10
|
+
|
11
|
+
Silencer::Rails::Logger.new(app, :silence => ['/']).
|
12
|
+
call(Rack::MockRequest.env_for("/"))
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'quiets the log when configured with a regex' do
|
16
|
+
expect(::Rails.logger).to receive(:level=).
|
17
|
+
with(::Logger::ERROR).at_least(:once)
|
18
|
+
|
19
|
+
Silencer::Rails::Logger.new(app, :silence => [/assets/]).
|
20
|
+
call(Rack::MockRequest.env_for("/assets/application.css"))
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'quiets the log when passed a custom header "X-SILENCE-LOGGER"' do
|
24
|
+
expect(::Rails.logger).to receive(:level=).
|
25
|
+
with(::Logger::ERROR).at_least(:once)
|
26
|
+
|
27
|
+
Silencer::Rails::Logger.new(app).
|
28
|
+
call(Rack::MockRequest.env_for("/", 'HTTP_X_SILENCE_LOGGER' => 'true'))
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'does not tamper with the response' do
|
32
|
+
response = Silencer::Rails::Logger.new(app).
|
33
|
+
call(Rack::MockRequest.env_for("/", 'HTTP_X_SILENCE_LOGGER' => 'true'))
|
34
|
+
|
35
|
+
expect(response[0]).to eq(200)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'instantiates with an optional taggers array' do
|
39
|
+
expect(::Rails.logger).to receive(:level=).
|
40
|
+
with(::Logger::ERROR).at_least(:once)
|
41
|
+
|
42
|
+
Silencer::Rails::Logger.new(app, log_tags, :silence => ['/']).
|
43
|
+
call(Rack::MockRequest.env_for("/"))
|
44
|
+
end if Silencer::Environment.tagged_logger?
|
45
|
+
|
46
|
+
it 'instantiates with an optional taggers array passed as args' do
|
47
|
+
expect(::Rails.logger).to receive(:level=).
|
48
|
+
with(::Logger::ERROR).at_least(:once)
|
49
|
+
|
50
|
+
Silencer::Rails::Logger.new(app, :uuid, :queue, :silence => ['/']).
|
51
|
+
call(Rack::MockRequest.env_for("/"))
|
52
|
+
end if Silencer::Environment.tagged_logger?
|
53
|
+
|
54
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,6 +8,33 @@ unless ENV['CI']
|
|
8
8
|
end
|
9
9
|
|
10
10
|
require 'rack'
|
11
|
-
require 'rails'
|
12
|
-
require 'silencer'
|
13
11
|
require 'rspec'
|
12
|
+
|
13
|
+
require 'logger'
|
14
|
+
require 'stringio'
|
15
|
+
|
16
|
+
io = StringIO.new
|
17
|
+
|
18
|
+
begin
|
19
|
+
require 'rails'
|
20
|
+
::Rails.logger = ::Logger.new(io)
|
21
|
+
rescue LoadError
|
22
|
+
require 'activesupport'
|
23
|
+
RAILS_ENV = 'test'
|
24
|
+
RAILS_ROOT = File.dirname(__FILE__)
|
25
|
+
RAILS_DEFAULT_LOGGER = ::Logger.new(io)
|
26
|
+
require 'initializer'
|
27
|
+
end
|
28
|
+
|
29
|
+
require 'silencer'
|
30
|
+
|
31
|
+
RSpec.configure do |config|
|
32
|
+
config.expect_with :rspec do |c|
|
33
|
+
c.syntax = :expect
|
34
|
+
end
|
35
|
+
|
36
|
+
config.before(:each) do
|
37
|
+
allow(::Rails.logger).to receive(:level=).with(anything)
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
metadata
CHANGED
@@ -1,54 +1,39 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: silencer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0.rc1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Steve Agalloco
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
13
|
-
dependencies:
|
14
|
-
-
|
15
|
-
name: railties
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '3'
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '3'
|
30
|
-
description: Selectively quiet your Rails logger on a per-action basis
|
12
|
+
date: 2013-10-20 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
14
|
+
description: Selectively quiet your Rails/Rack logger on a per-route basis
|
31
15
|
email:
|
32
16
|
- steve.agalloco@gmail.com
|
33
17
|
executables: []
|
34
18
|
extensions: []
|
35
19
|
extra_rdoc_files: []
|
36
20
|
files:
|
37
|
-
- .gemtest
|
38
|
-
- .gitignore
|
39
|
-
- .rspec
|
40
|
-
- .travis.yml
|
41
21
|
- .yardopts
|
42
|
-
- Gemfile
|
43
|
-
- Guardfile
|
44
22
|
- LICENSE.md
|
45
23
|
- README.md
|
46
24
|
- Rakefile
|
47
|
-
-
|
25
|
+
- silencer.gemspec
|
26
|
+
- lib/silencer/environment.rb
|
27
|
+
- lib/silencer/hush.rb
|
48
28
|
- lib/silencer/logger.rb
|
29
|
+
- lib/silencer/rack/logger.rb
|
30
|
+
- lib/silencer/rails/logger.rb
|
31
|
+
- lib/silencer/util.rb
|
49
32
|
- lib/silencer/version.rb
|
50
|
-
- silencer.
|
51
|
-
- spec/
|
33
|
+
- lib/silencer.rb
|
34
|
+
- spec/log/test.log
|
35
|
+
- spec/silencer/rack/logger_spec.rb
|
36
|
+
- spec/silencer/rails/logger_spec.rb
|
52
37
|
- spec/spec_helper.rb
|
53
38
|
homepage: http://github.com/spagalloco/silencer
|
54
39
|
licenses: []
|
@@ -64,23 +49,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
64
49
|
version: '0'
|
65
50
|
segments:
|
66
51
|
- 0
|
67
|
-
hash:
|
52
|
+
hash: 3624886497730780016
|
68
53
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
54
|
none: false
|
70
55
|
requirements:
|
71
|
-
- - ! '
|
56
|
+
- - ! '>'
|
72
57
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
74
|
-
segments:
|
75
|
-
- 0
|
76
|
-
hash: -4361503101731160331
|
58
|
+
version: 1.3.1
|
77
59
|
requirements: []
|
78
60
|
rubyforge_project:
|
79
61
|
rubygems_version: 1.8.23
|
80
62
|
signing_key:
|
81
63
|
specification_version: 3
|
82
|
-
summary: Selectively quiet your Rails logger on a per-
|
64
|
+
summary: Selectively quiet your Rails/Rack logger on a per-route basis
|
83
65
|
test_files:
|
84
|
-
- spec/
|
66
|
+
- spec/log/test.log
|
67
|
+
- spec/silencer/rack/logger_spec.rb
|
68
|
+
- spec/silencer/rails/logger_spec.rb
|
85
69
|
- spec/spec_helper.rb
|
86
70
|
has_rdoc:
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/.travis.yml
DELETED
data/Gemfile
DELETED
data/Guardfile
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
# A sample Guardfile
|
2
|
-
# More info at https://github.com/guard/guard#readme
|
3
|
-
|
4
|
-
guard 'rspec', :version => 2 do
|
5
|
-
watch(%r{^spec/.+_spec\.rb$})
|
6
|
-
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
7
|
-
watch('spec/spec_helper.rb') { "spec" }
|
8
|
-
|
9
|
-
# Rails example
|
10
|
-
watch(%r{^spec/.+_spec\.rb$})
|
11
|
-
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
12
|
-
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
13
|
-
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
14
|
-
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
15
|
-
watch('spec/spec_helper.rb') { "spec" }
|
16
|
-
watch('config/routes.rb') { "spec/routing" }
|
17
|
-
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
18
|
-
# Capybara request specs
|
19
|
-
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
|
20
|
-
end
|
21
|
-
|
data/spec/silencer_spec.rb
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Silencer::Logger do
|
4
|
-
before(:each) do
|
5
|
-
@app = lambda { |env| [200, {}, ''] }
|
6
|
-
|
7
|
-
Rails.logger = stub('ActiveSupport::BufferedLogger').tap do |l|
|
8
|
-
l.stub(:level).and_return(::Logger::INFO)
|
9
|
-
l.stub(:level=).and_return(true)
|
10
|
-
l.stub(:info)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def should_silence_logger
|
15
|
-
Rails.logger.should_receive(:level=).with(::Logger::ERROR).once
|
16
|
-
end
|
17
|
-
def should_not_silence_logger
|
18
|
-
Rails.logger.should_not_receive(:level=).with(::Logger::ERROR)
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'by default does not silence any requests or use any taggers' do
|
22
|
-
should_not_silence_logger
|
23
|
-
logger = Silencer::Logger.new(@app)
|
24
|
-
logger.instance_variable_get(:@taggers).should == []
|
25
|
-
logger.call(Rack::MockRequest.env_for("/"))
|
26
|
-
end
|
27
|
-
|
28
|
-
let(:log_tags) { [:uuid, :queue] }
|
29
|
-
it 'instantiates with an optional taggers array' do
|
30
|
-
should_silence_logger
|
31
|
-
logger = Silencer::Logger.new(@app, log_tags, :silence => ['/'])
|
32
|
-
logger.instance_variable_get(:@taggers).should == log_tags
|
33
|
-
logger.call(Rack::MockRequest.env_for("/"))
|
34
|
-
end
|
35
|
-
|
36
|
-
# Note: initially this test used a splat on log_tags but it fails on 1.8
|
37
|
-
it 'instantiates with an optional taggers array passed as args' do
|
38
|
-
should_silence_logger
|
39
|
-
logger = Silencer::Logger.new(@app, :uuid, :queue, :silence => ['/'])
|
40
|
-
logger.instance_variable_get(:@taggers).should == log_tags
|
41
|
-
logger.call(Rack::MockRequest.env_for("/"))
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'quiets the log when configured with a silenced path' do
|
45
|
-
should_silence_logger
|
46
|
-
Silencer::Logger.new(@app, :silence => ['/']).call(Rack::MockRequest.env_for("/"))
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'quiets the log when configured with a regex' do
|
50
|
-
should_silence_logger
|
51
|
-
Silencer::Logger.new(@app, :silence => [/assets/]).call(Rack::MockRequest.env_for("/assets/application.css"))
|
52
|
-
end
|
53
|
-
|
54
|
-
it 'quiets the log when passed a custom header "X-SILENCE-LOGGER"' do
|
55
|
-
should_silence_logger
|
56
|
-
Silencer::Logger.new(@app).call(Rack::MockRequest.env_for("/", 'HTTP_X_SILENCE_LOGGER' => 'true'))
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'does not tamper with the response' do
|
60
|
-
response = Silencer::Logger.new(@app).call(Rack::MockRequest.env_for("/", 'HTTP_X_SILENCE_LOGGER' => 'true'))
|
61
|
-
response[0].should eq(200)
|
62
|
-
end
|
63
|
-
end
|