1
0
mirror of https://github.com/meineerde/rackstash.git synced 2025-12-27 01:41:15 +00:00

194 Commits

Author SHA1 Message Date
dcf21d0bfa Synchronize all writes of the IO adapter against the underlying IO object 2017-07-27 18:06:48 +02:00
be6e3517de Increase sub-second precision of timestamps to 6 decimal places 2017-07-25 23:32:14 +02:00
7a32781c17 Return the pop'ed Buffer from the BufferStack on flush_and_pop 2017-07-25 23:32:14 +02:00
248a1d558f No need to synchronize the BufferStack with a Mutex
A single BufferStack object is only ever accessed by a single thread.
This is guaranteed by the Logger. Exceptions to the rule are not special
enough to break the rules.
2017-07-25 23:31:39 +02:00
c370aecbcd Stop splatting clean hash argument in Bufferstack#push
The optional keyword arguments are already cleaned by the keyword splat
in BufferStack#push. They are automatically unsplatted when calling
Buffer#initialize anyway.
2017-07-25 23:30:01 +02:00
f92bde5af2 Add Logger#[] and Logger#[]= alias methods to get and set fields 2017-07-25 00:03:47 +02:00
12261ef786 Fix Typo in spec description 2017-07-22 00:07:18 +02:00
9656297762 Remove ANSI color codes from the message in JSON encoder 2017-07-22 00:06:35 +02:00
da97e9d54e Inline Message#cleanup to save one method invocation per log line 2017-07-21 23:39:17 +02:00
05145b400b Fix Typo 2017-07-21 23:34:29 +02:00
667beb662f Freeze Messages directly after initialization
This ensures that they are actually immutable.
2017-07-21 22:50:44 +02:00
57f200ab35 Check that Logger#tag implements the same interface as Buffer#tag 2017-07-21 18:34:50 +02:00
9536b0473b Forward Logger#timestamp to Buffer#timestamp 2017-07-21 18:34:29 +02:00
5213574ec7 Don't include Forwardable into Rackstash::Logger anymore, we are not using it 2017-07-21 17:12:46 +02:00
cce94b70ed Explicitly require concurrent gem for Buffer class 2017-07-21 17:06:37 +02:00
1b81e763b2 Improve documentation for Sink#default_* accessors 2017-07-21 17:04:25 +02:00
c53d85fac5 Forward Logger#tag to the current Buffer 2017-07-21 16:57:44 +02:00
fc4a917b71 Forward Logger#close and Logger#reopen to the Sink 2017-07-21 16:44:11 +02:00
40f920dafb Forward config methods for the Sink on the Logger 2017-07-21 16:37:47 +02:00
1d67d819d0 Complete code documentation of Rackstash::Message 2017-07-20 23:46:03 +02:00
25dfa87de7 Add Rackstash::Logger#add_exception to easily add details about exceptions as buffer fields 2017-07-20 23:19:06 +02:00
d9ea199d4f Remove useless variable assignment in logger spec 2017-07-20 22:49:03 +02:00
67955f8629 Add force parameter to Rackstash::Fields::Hash#set so it works like #merge! 2017-07-20 22:11:11 +02:00
9fc9ea248b Use Rackstash::Helpers::UTF8 in Message class 2017-07-20 14:12:05 +02:00
d73b7ba8e1 Extract utf8_encode helper into Rackstash::Helpers::UTF8 module 2017-07-20 14:12:05 +02:00
2c8d6ac009 Don't cleanup ANSI chars and newlines in messages anymore
These characters might be there deliberately. If they should be cleaned
up, it can easily be done later with a filter.
2017-07-20 13:45:55 +02:00
ba3e0676e5 Test for invalid matchers for registered Adapters
Yes, this commit is required only because of my unhealthy urge to
achieve real 100% test coverage...
2017-07-20 01:25:16 +02:00
5eeaab4afa Allow to overwrite logger attributes in Logger#initialize 2017-07-20 00:47:26 +02:00
4a62e3d189 Allow to write a Hash to the Logger to deep_merge fields 2017-07-20 00:29:43 +02:00
33ee63bffb Improve code documentation for Logger 2017-07-20 00:20:23 +02:00
4e1f6af273 Use the same argument names in Logger methods 2017-07-20 00:18:41 +02:00
720406b318 Implement the full Sink class
A single Sink is tied to a single Logger. It is responsible to:

* Create a log event from a Buffer on #write and send it to each of the
  flows independently.
* Forward all actions to all of the defined Flows.

The Sink provides access to all configured data of the Logger which is
used for persisting the Buffers.
2017-07-20 00:06:06 +02:00
54a6f5d160 Implement the Flow to transform and persist log events
A single Buffer can be send to one or more flows which in turn each
write to a different adapter. A Flow object is responsible for
filtering, encoding, and finally persisting the event to an adapter.

Each Flow object can be configured differently which allows to write a
single log event to multiple targets as required.
2017-07-19 23:55:52 +02:00
882c10e596 Update JRuby version to 9.1.12.0 for Travis CI 2017-07-19 13:38:29 +02:00
1b98745e70 Use Ubuntu Trusty on Travis
https://blog.travis-ci.com/2017-07-11-trusty-as-default-linux-is-coming
2017-07-19 13:38:29 +02:00
7032cc6999 Do not mutate external time objects when getting UTC time 2017-07-19 13:37:38 +02:00
b573581a26 Add Null adapter which just swallows any logs 2017-07-19 13:08:11 +02:00
ca339a84fa Replace specific class-under-test with described_class in all specs 2017-07-19 12:55:29 +02:00
b6768c6547 Test all conditions of Rackstash::Fields::Hash() 2017-07-19 12:02:21 +02:00
b72b8cf94b Fix @return documentation tag for Rackstash::Filters::SkipEvent#call 2017-07-19 11:09:32 +02:00
9950d783cf Ensure behavior of Rackstash::Adapters::File#auto_reopen? 2017-07-19 00:40:47 +02:00
0420984d92 Ensure more reliable concurrency in tests for Rackstash::Adapters::File 2017-07-19 00:27:35 +02:00
2ff1e1e5dc Ensure Rackstash::Fields::Tags.merge! accepts nested procs 2017-07-18 23:33:48 +02:00
dc3d2b20bf Add tests and clarify edge-case for Rackstash.severity_label 2017-07-18 23:28:26 +02:00
d609c2409a Fix test condition in file adapter cncurrency spec
Previously, we have counted successivly equal lines. However, we want to
count the number of lines with different content to ensure proper
concurrency during the test.
2017-07-18 23:13:35 +02:00
e21108b7c2 Add first example SkipEvent filter 2017-07-18 23:13:35 +02:00
466c377565 Add FilterChain to wrap and filters on event hashes 2017-07-18 16:49:04 +02:00
a4a6b248cf Use frozen string literals throughout the codebase in Ruby >= 2.3 2017-07-17 13:35:24 +02:00
e3611c8720 Add Message#severity_label and Message#length utility methods 2017-07-17 12:00:13 +02:00
364426f228 Return the flows object in Rackstash::Flows#each 2017-07-15 16:27:09 +02:00