logstash_rails 0.0.10 → 0.0.11

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 CHANGED
@@ -7,6 +7,11 @@
7
7
 
8
8
  Send events from Rails to Logstash without logger foo.
9
9
 
10
+ LogstashRails uses `ActiveSupport::Notifications` to subscribe to events from *Rails* and push them to *Logstash*.
11
+ It emmits json formatted `Logstash::Event`.
12
+
13
+ There is no `Logger` configuration, logfile or filter in Logstash required.
14
+
10
15
  ## Contents
11
16
 
12
17
  * [Usage](#usage)
data/Rakefile CHANGED
@@ -10,6 +10,5 @@ end
10
10
 
11
11
  desc 'cleanup working copy'
12
12
  task :clean do
13
- FileUtils.rm_rf('coverage')
14
- FileUtils.rm_rf('doc')
13
+ FileUtils.rm_rf %w(coverage doc pkg)
15
14
  end
@@ -1,7 +1,7 @@
1
1
  require 'active_support'
2
2
  require 'active_support/core_ext/string'
3
3
 
4
- require 'logstash_rails/configuration_base'
4
+ require 'logstash_rails/transport_base'
5
5
 
6
6
  Dir[File.join(File.dirname(__FILE__), 'logstash_rails', '*.rb')].each do |file|
7
7
  require file
@@ -0,0 +1,24 @@
1
+ require 'logger'
2
+
3
+ module LogstashRails
4
+ module Transport
5
+ class Logfile < TransportBase
6
+
7
+ def initialize(options = {})
8
+ logfile = options[:logfile] || 'log/logstash_rails.log'
9
+
10
+ @logger = ::Logger.new(logfile)
11
+
12
+ @logger.formatter = lambda do |severity, datetime, progname, msg|
13
+ "#{msg}\n"
14
+ end
15
+ @logger.level = Logger::INFO
16
+ end
17
+
18
+ def push(json_event)
19
+ @logger.error(json_event)
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -1,6 +1,6 @@
1
1
  module LogstashRails
2
2
  module Transport
3
- class LogstashTcp < ConfigurationBase
3
+ class LogstashTcp < TransportBase
4
4
 
5
5
  def initialize(options)
6
6
  super
@@ -1,6 +1,6 @@
1
1
  module LogstashRails
2
2
  module Transport
3
- class LogstashUdp < ConfigurationBase
3
+ class LogstashUdp < TransportBase
4
4
 
5
5
  def initialize(options = {})
6
6
  super
@@ -1,6 +1,6 @@
1
1
  module LogstashRails
2
2
  module Transport
3
- class Redis < LogstashRails::ConfigurationBase
3
+ class Redis < TransportBase
4
4
 
5
5
  def initialize(options)
6
6
  host = options[:host] || '127.0.0.1'
@@ -1,8 +1,8 @@
1
1
  module LogstashRails
2
2
 
3
- # base class for all transports
3
+ # base class for transports
4
4
  #
5
- class ConfigurationBase
5
+ class TransportBase
6
6
 
7
7
  # @param options [Hash]
8
8
  #
@@ -1,3 +1,3 @@
1
1
  module LogstashRails
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
@@ -0,0 +1,26 @@
1
+ describe LogstashRails::Transport::Logfile do
2
+
3
+ let :logfile do
4
+ Tempfile.new(__FILE__)
5
+ end
6
+
7
+ after do
8
+ logfile.unlink
9
+ end
10
+
11
+ subject do
12
+ LogstashRails::Transport::Logfile.new(logfile: logfile)
13
+ end
14
+
15
+ it { should respond_to :push }
16
+
17
+ it 'writes events to a logfile' do
18
+ event = 'foobar_event'
19
+
20
+ subject.push(event)
21
+
22
+ logfile.rewind
23
+ logfile.read.should include(event)
24
+ end
25
+
26
+ end
@@ -1,4 +1,4 @@
1
- describe LogstashRails::ConfigurationBase do
1
+ describe LogstashRails::TransportBase do
2
2
 
3
3
  subject do
4
4
  LogstashRails
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -74,19 +74,21 @@ files:
74
74
  - README.md
75
75
  - Rakefile
76
76
  - lib/logstash_rails.rb
77
- - lib/logstash_rails/configuration_base.rb
78
77
  - lib/logstash_rails/formatter.rb
79
78
  - lib/logstash_rails/transport.rb
79
+ - lib/logstash_rails/transport/logfile.rb
80
80
  - lib/logstash_rails/transport/logstash_tcp.rb
81
81
  - lib/logstash_rails/transport/logstash_udp.rb
82
82
  - lib/logstash_rails/transport/redis.rb
83
+ - lib/logstash_rails/transport_base.rb
83
84
  - lib/logstash_rails/version.rb
84
85
  - logstash_rails.gemspec
85
- - spec/lib/logstash_rails/configuration_spec.rb
86
86
  - spec/lib/logstash_rails/formatter_spec.rb
87
+ - spec/lib/logstash_rails/transport/logfile_spec.rb
87
88
  - spec/lib/logstash_rails/transport/logstash_tcp_spec.rb
88
89
  - spec/lib/logstash_rails/transport/logstash_udp_spec.rb
89
90
  - spec/lib/logstash_rails/transport/redis_spec.rb
91
+ - spec/lib/logstash_rails/transport_base_spec.rb
90
92
  - spec/spec_helper.rb
91
93
  homepage: https://github.com/cmertz/logstash_rails
92
94
  licenses:
@@ -103,7 +105,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
105
  version: '0'
104
106
  segments:
105
107
  - 0
106
- hash: -1863269077052874356
108
+ hash: -4205275555820602412
107
109
  required_rubygems_version: !ruby/object:Gem::Requirement
108
110
  none: false
109
111
  requirements:
@@ -112,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
114
  version: '0'
113
115
  segments:
114
116
  - 0
115
- hash: -1863269077052874356
117
+ hash: -4205275555820602412
116
118
  requirements: []
117
119
  rubyforge_project:
118
120
  rubygems_version: 1.8.24
@@ -120,10 +122,11 @@ signing_key:
120
122
  specification_version: 3
121
123
  summary: Send events from Rails to Logstash without logger foo.
122
124
  test_files:
123
- - spec/lib/logstash_rails/configuration_spec.rb
124
125
  - spec/lib/logstash_rails/formatter_spec.rb
126
+ - spec/lib/logstash_rails/transport/logfile_spec.rb
125
127
  - spec/lib/logstash_rails/transport/logstash_tcp_spec.rb
126
128
  - spec/lib/logstash_rails/transport/logstash_udp_spec.rb
127
129
  - spec/lib/logstash_rails/transport/redis_spec.rb
130
+ - spec/lib/logstash_rails/transport_base_spec.rb
128
131
  - spec/spec_helper.rb
129
132
  has_rdoc: