logstash_rails 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
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: