mirror of
https://github.com/meineerde/rackstash.git
synced 2025-12-26 17:31:13 +00:00
Add Logger#[] and Logger#[]= alias methods to get and set fields
This commit is contained in:
parent
12261ef786
commit
f92bde5af2
@ -83,6 +83,28 @@ module Rackstash
|
|||||||
msg
|
msg
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Retrieve a stored value from a given `key` in the current Buffer's fields.
|
||||||
|
# This is strictly equivalent to calling `logger.fields[key]`.
|
||||||
|
#
|
||||||
|
# @param (see Fields::Hash#[])
|
||||||
|
# @return (see Fields::Hash#[])
|
||||||
|
def [](key)
|
||||||
|
buffer.fields[key]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Set the value of a key in the current Buffer's fields to the supplied
|
||||||
|
# value. You can set nested hashes and arrays here. The hash keys will be
|
||||||
|
# normalized as strings.
|
||||||
|
# This is strictly equivalent to calling `logger.fields[key] = value`.
|
||||||
|
#
|
||||||
|
# @param (see Fields::Hash#[]=)
|
||||||
|
# @raise [ArgumentError] if you attempt to set one of the forbidden fields,
|
||||||
|
# namely any of {Buffer::FORBIDDEN_FIELDS}
|
||||||
|
# @return (see Fields::Hash#[]=)
|
||||||
|
def []=(key, value)
|
||||||
|
buffer.fields[key] = value
|
||||||
|
end
|
||||||
|
|
||||||
# Set the base log level as either one of the {SEVERITIES} or a
|
# Set the base log level as either one of the {SEVERITIES} or a
|
||||||
# String/Symbol describing the level. When logging a message, it will only
|
# String/Symbol describing the level. When logging a message, it will only
|
||||||
# be added if its log level is at or above the base level defined here
|
# be added if its log level is at or above the base level defined here
|
||||||
|
|||||||
@ -38,6 +38,32 @@ describe Rackstash::Logger do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'subscript accessors' do
|
||||||
|
it 'gets a fields from the current Buffer' do
|
||||||
|
logger['key'] = 'value'
|
||||||
|
expect(logger['key']).to eql 'value'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'normalizes keys when setting values' do
|
||||||
|
logger[:foo] = 'foo value'
|
||||||
|
expect(logger['foo']).to eql 'foo value'
|
||||||
|
|
||||||
|
logger[42] = '42 value'
|
||||||
|
expect(logger['42']).to eql '42 value'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns nil if a value was not set' do
|
||||||
|
expect(logger['missing']).to be_nil
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'can\'t set forbidden values' do
|
||||||
|
expect { logger['message'] = 'nope' }.to raise_error ArgumentError
|
||||||
|
expect { logger['tags'] = 'nope' }.to raise_error ArgumentError
|
||||||
|
expect { logger['@timestamp'] = 'nope' }.to raise_error ArgumentError
|
||||||
|
expect { logger['@version'] = 'nope' }.to raise_error ArgumentError
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '#close' do
|
describe '#close' do
|
||||||
it 'forwards to the sink' do
|
it 'forwards to the sink' do
|
||||||
expect(logger.sink).to receive(:close)
|
expect(logger.sink).to receive(:close)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user