logasm 0.2.0 → 0.2.1
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -15
- data/lib/logasm/adapters/rabbitmq_adapter.rb +8 -4
- data/logasm.gemspec +1 -1
- data/spec/adapters/rabbitmq_adapter_spec.rb +13 -19
- metadata +2 -3
- data/lib/logasm/adapters/rabbitmq_adapter/publisher.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3101253198b60ee5b25bb1630c9e921adb38aeb
|
4
|
+
data.tar.gz: 6bd9c7299915e79a8e66e435203814055d02975e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d79512c5dfae753ff1b23afa09d847b4eea76d2c659b496f4b45d1646113af73683c808cb7a756c472dd8eb3befbcf4e2532847180d42512adb9eb8b42db475d
|
7
|
+
data.tar.gz: 85187d7037e0df502f3c25e2c792d1769a4583f39d3876534069365eacea671b092dcb56f37f30216dc89c47a4d6a774223a55ec651f36124124b69efdffc177
|
data/Gemfile.lock
CHANGED
@@ -1,26 +1,15 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
logasm (0.2.
|
4
|
+
logasm (0.2.1)
|
5
5
|
inflecto
|
6
6
|
logstash-event (~> 1.2)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
amq-protocol (2.0.0)
|
12
|
-
atomic (1.1.99)
|
13
|
-
bunny (1.6.3)
|
14
|
-
amq-protocol (>= 1.9.2)
|
15
11
|
coderay (1.1.0)
|
16
12
|
diff-lcs (1.2.5)
|
17
|
-
freddy (0.4.1)
|
18
|
-
bunny (= 1.6.3)
|
19
|
-
hamster (~> 1.0.1.pre.rc3)
|
20
|
-
symbolizer
|
21
|
-
thread (~> 0.2)
|
22
|
-
hamster (1.0.1.pre.rc3)
|
23
|
-
atomic (~> 1.1)
|
24
13
|
inflecto (0.0.2)
|
25
14
|
logstash-event (1.2.02)
|
26
15
|
method_source (0.8.2)
|
@@ -43,15 +32,12 @@ GEM
|
|
43
32
|
rspec-support (~> 3.3.0)
|
44
33
|
rspec-support (3.3.0)
|
45
34
|
slop (3.6.0)
|
46
|
-
symbolizer (0.0.1)
|
47
|
-
thread (0.2.2)
|
48
35
|
|
49
36
|
PLATFORMS
|
50
37
|
ruby
|
51
38
|
|
52
39
|
DEPENDENCIES
|
53
40
|
bundler (~> 1.3)
|
54
|
-
freddy (~> 0.4.1)
|
55
41
|
logasm!
|
56
42
|
pry
|
57
43
|
rake
|
@@ -12,7 +12,7 @@ require_relative 'rabbitmq_adapter/message_builder'
|
|
12
12
|
class Logasm
|
13
13
|
module Adapters
|
14
14
|
class RabbitmqAdapter
|
15
|
-
attr_reader :
|
15
|
+
attr_reader :freddy
|
16
16
|
|
17
17
|
CONFIGURATION_KEYS = [:host, :user, :pass, :port]
|
18
18
|
|
@@ -21,15 +21,14 @@ class Logasm
|
|
21
21
|
logger = Logger.new(STDOUT)
|
22
22
|
@queue = arguments.fetch(:queue, 'logstash-queue')
|
23
23
|
@level = level
|
24
|
-
|
25
24
|
@message_builder = MessageBuilder.new(service)
|
26
|
-
@freddy = Freddy.build(logger, config)
|
25
|
+
@freddy = Freddy.build(logger, config.merge({recover_from_connection_close: true}))
|
27
26
|
end
|
28
27
|
|
29
28
|
def log(level, metadata = {})
|
30
29
|
if meets_threshold?(level)
|
31
30
|
message = @message_builder.build_message metadata, level
|
32
|
-
|
31
|
+
deliver_message message
|
33
32
|
end
|
34
33
|
end
|
35
34
|
|
@@ -38,6 +37,11 @@ class Logasm
|
|
38
37
|
def meets_threshold?(level)
|
39
38
|
LOG_LEVELS.index(level.to_s) >= @level
|
40
39
|
end
|
40
|
+
|
41
|
+
def deliver_message(message)
|
42
|
+
@freddy.deliver @queue, message
|
43
|
+
rescue Bunny::ConnectionClosedError
|
44
|
+
end
|
41
45
|
end
|
42
46
|
end
|
43
47
|
end
|
data/logasm.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
6
|
gem.name = "logasm"
|
7
|
-
gem.version = '0.2.
|
7
|
+
gem.version = '0.2.1'
|
8
8
|
gem.authors = ["Salemove"]
|
9
9
|
gem.email = ["support@salemove.com"]
|
10
10
|
gem.description = %q{It's logasmic}
|
@@ -2,37 +2,31 @@ require 'spec_helper'
|
|
2
2
|
require_relative '../../lib/logasm/adapters/rabbitmq_adapter'
|
3
3
|
|
4
4
|
describe Logasm::Adapters::RabbitmqAdapter do
|
5
|
-
let(:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
let(:adapter) { described_class.new(log_level, nil, { host: 'localhost',
|
6
|
+
user: 'guest',
|
7
|
+
pass: 'guest',
|
8
|
+
port: '5672' }
|
9
|
+
) }
|
10
|
+
let(:freddy) { adapter.freddy }
|
10
11
|
|
11
12
|
describe '#log' do
|
12
13
|
context 'when logging a message' do
|
13
|
-
let(:
|
14
|
-
user: 'guest',
|
15
|
-
pass: 'guest',
|
16
|
-
port: '5672' }
|
17
|
-
) }
|
14
|
+
let(:log_level) { 0 }
|
18
15
|
|
19
|
-
it 'delegates to
|
20
|
-
expect(
|
16
|
+
it 'delegates to freddy' do
|
17
|
+
expect(freddy).to receive(:deliver)
|
21
18
|
|
22
19
|
adapter.log :info, message: 'test'
|
23
20
|
end
|
24
21
|
end
|
25
22
|
|
26
23
|
context 'when log level is lower than threshold' do
|
27
|
-
let(:
|
28
|
-
user: 'guest',
|
29
|
-
pass: 'guest',
|
30
|
-
port: '5672' }
|
31
|
-
) }
|
24
|
+
let(:log_level) { 3 }
|
32
25
|
|
33
26
|
it 'does not delegate to freddy' do
|
34
|
-
expect(
|
35
|
-
|
27
|
+
expect(freddy).not_to receive(:deliver)
|
28
|
+
|
29
|
+
adapter.log :info, message: 'test', a: 'b'
|
36
30
|
end
|
37
31
|
end
|
38
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logasm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Salemove
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logstash-event
|
@@ -101,7 +101,6 @@ files:
|
|
101
101
|
- lib/logasm/adapters/logstash_adapter/formatter.rb
|
102
102
|
- lib/logasm/adapters/rabbitmq_adapter.rb
|
103
103
|
- lib/logasm/adapters/rabbitmq_adapter/message_builder.rb
|
104
|
-
- lib/logasm/adapters/rabbitmq_adapter/publisher.rb
|
105
104
|
- lib/logasm/adapters/stdout_adapter.rb
|
106
105
|
- logasm.gemspec
|
107
106
|
- spec/adapters/logstash_adapter/formatter_spec.rb
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'bunny'
|
2
|
-
|
3
|
-
class Logasm
|
4
|
-
module Adapters
|
5
|
-
class RabbitmqAdapter
|
6
|
-
class Publisher
|
7
|
-
def initialize(queue, config)
|
8
|
-
connection = Bunny.new("amqp://#{config[:user]}:#{config[:pass]}@#{config[:host]}:#{config[:port]}")
|
9
|
-
connection.start
|
10
|
-
@exchange = connection.create_channel.default_exchange
|
11
|
-
@queue = queue
|
12
|
-
end
|
13
|
-
|
14
|
-
def publish(message)
|
15
|
-
@exchange.publish(message.to_json, :routing_key => @queue)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|