vx-lib-logger 0.3.4 → 0.3.5
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/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
|