vx-lib-logger 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/vx/lib/logger/logstash_device.rb +10 -33
- data/lib/vx/lib/logger/logstash_logger.rb +4 -4
- data/lib/vx/lib/logger/version.rb +1 -1
- data/spec/lib/logstash_device_spec.rb +1 -39
- data/spec/lib/logstash_logger_spec.rb +0 -1
- data/spec/spec_helper.rb +8 -15
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9fc76156b0ca24dee245c5b6681f03462a95cbc6
|
4
|
+
data.tar.gz: 9120d85a12ad8d059e1a74afb24b5293d2b04ea1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd48fb6e83d24e0216a8db4cad894ad7c5bc3d54e153cf46458fb5472be1dfd8eea565b7e27dbd7031ca099272310aff9ef695d4765d2238bbeb13c5917f5f0e
|
7
|
+
data.tar.gz: 8525d010e4f916d60c1e58ea8052f417748c47a93a3b1ee28cf63264b325803321969a40b427110250bdaaeaece39aa6439f126a61d747c26605c2554b5e2083
|
@@ -8,7 +8,6 @@ module Vx ; module Lib ; module Logger
|
|
8
8
|
|
9
9
|
def initialize
|
10
10
|
@mutex = Mutex.new
|
11
|
-
@queue = Queue.new
|
12
11
|
end
|
13
12
|
|
14
13
|
def uri
|
@@ -36,34 +35,16 @@ module Vx ; module Lib ; module Logger
|
|
36
35
|
|
37
36
|
def write(message)
|
38
37
|
if enabled?
|
39
|
-
|
40
|
-
@queue.push message
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
def flush
|
45
|
-
@io && @io.flush
|
46
|
-
end
|
47
|
-
|
48
|
-
def main_thread
|
49
|
-
@main_thread ||= Thread.new do
|
50
|
-
loop do
|
38
|
+
@mutex.synchronize do
|
51
39
|
with_connection do
|
52
|
-
@io.write
|
40
|
+
@io.write message
|
53
41
|
end
|
54
42
|
end
|
55
43
|
end
|
56
44
|
end
|
57
45
|
|
58
|
-
def
|
59
|
-
@
|
60
|
-
@main_thread.kill
|
61
|
-
@main_thread = nil
|
62
|
-
)
|
63
|
-
end
|
64
|
-
|
65
|
-
def empty?
|
66
|
-
@queue.empty?
|
46
|
+
def flush
|
47
|
+
@io && @io.flush
|
67
48
|
end
|
68
49
|
|
69
50
|
private
|
@@ -81,16 +62,12 @@ module Vx ; module Lib ; module Logger
|
|
81
62
|
end
|
82
63
|
|
83
64
|
def with_connection(&block)
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
warn "#{self.class} - #{e.class} - #{e.message}"
|
91
|
-
close
|
92
|
-
@io = nil
|
93
|
-
end
|
65
|
+
connect unless connected?
|
66
|
+
yield
|
67
|
+
rescue Exception => e
|
68
|
+
warn "#{self.class} - #{e.class} - #{e.message}"
|
69
|
+
close
|
70
|
+
@io = nil
|
94
71
|
end
|
95
72
|
|
96
73
|
def reconnect
|
@@ -20,12 +20,12 @@ module Vx ; module Lib ; module Logger
|
|
20
20
|
logstash_device.close
|
21
21
|
end
|
22
22
|
|
23
|
-
def logstash_device
|
24
|
-
Lib::Logger.logstash_device
|
25
|
-
end
|
26
|
-
|
27
23
|
private
|
28
24
|
|
25
|
+
def logstash_device
|
26
|
+
Lib::Logger.logstash_device
|
27
|
+
end
|
28
|
+
|
29
29
|
def format_message(level, message, payload)
|
30
30
|
LogstashFormatter.call(level, progname, message, payload)
|
31
31
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'timeout'
|
3
2
|
|
4
3
|
describe Vx::Lib::Logger::LogstashDevice do
|
5
4
|
|
@@ -20,25 +19,6 @@ describe Vx::Lib::Logger::LogstashDevice do
|
|
20
19
|
assert_equal re, "Hello\n"
|
21
20
|
end
|
22
21
|
|
23
|
-
it "should successfuly write in multhreaded" do
|
24
|
-
re = with_socket do
|
25
|
-
log = Vx::Lib::Logger::LogstashDevice.new
|
26
|
-
ths = (0...3).to_a.map do |n|
|
27
|
-
Thread.new do
|
28
|
-
log.write("Hello\n")
|
29
|
-
end
|
30
|
-
end
|
31
|
-
ths.map(&:join)
|
32
|
-
Timeout.timeout(3) do
|
33
|
-
while !log.empty?
|
34
|
-
sleep 0.1
|
35
|
-
end
|
36
|
-
end
|
37
|
-
log.close
|
38
|
-
end
|
39
|
-
assert_equal "Hello\n" * 10, re
|
40
|
-
end
|
41
|
-
|
42
22
|
it "should successfuly lost connection" do
|
43
23
|
log = Vx::Lib::Logger::LogstashDevice.new
|
44
24
|
|
@@ -47,33 +27,15 @@ describe Vx::Lib::Logger::LogstashDevice do
|
|
47
27
|
log.close
|
48
28
|
end
|
49
29
|
|
50
|
-
Timeout.timeout(3) do
|
51
|
-
while !log.empty?
|
52
|
-
sleep 0.1
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
30
|
log.write("Lost\n")
|
57
31
|
|
58
|
-
Timeout.timeout(3) do
|
59
|
-
while !log.empty?
|
60
|
-
sleep 0.1
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
32
|
re << with_socket do
|
65
33
|
log.write("World\n")
|
66
34
|
end
|
67
35
|
|
68
|
-
Timeout.timeout(3) do
|
69
|
-
while !log.empty?
|
70
|
-
sleep 0.1
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
36
|
log.close
|
75
37
|
|
76
|
-
assert_equal "Hello\nWorld\n"
|
38
|
+
assert_equal re, "Hello\nWorld\n"
|
77
39
|
end
|
78
40
|
|
79
41
|
|
data/spec/spec_helper.rb
CHANGED
@@ -2,32 +2,25 @@ require File.expand_path("../../lib/vx/lib/logger", __FILE__)
|
|
2
2
|
|
3
3
|
require 'minitest/spec'
|
4
4
|
require 'minitest/autorun'
|
5
|
-
require 'thread'
|
6
5
|
|
7
6
|
def with_socket
|
8
|
-
out
|
7
|
+
out = ""
|
9
8
|
server = TCPServer.new 9999
|
10
|
-
lock = Mutex.new
|
11
9
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
out << client.gets
|
18
|
-
puts "#{n}: !!!#{out}!!!"
|
19
|
-
client.close
|
20
|
-
end
|
21
|
-
end
|
10
|
+
th = Thread.new do
|
11
|
+
loop do
|
12
|
+
client = server.accept
|
13
|
+
out << client.gets
|
14
|
+
client.close
|
22
15
|
end
|
23
16
|
end
|
24
17
|
|
25
18
|
begin
|
26
19
|
yield
|
27
|
-
sleep
|
20
|
+
sleep 0.2
|
28
21
|
out
|
29
22
|
ensure
|
30
|
-
|
23
|
+
th.kill
|
31
24
|
server.close
|
32
25
|
end
|
33
26
|
end
|