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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2dea1390dc5c902ae600c1bcb84384ad3267051c
4
- data.tar.gz: 4409bc16d3e05078667782762bcd4a74dd6585bd
3
+ metadata.gz: 9fc76156b0ca24dee245c5b6681f03462a95cbc6
4
+ data.tar.gz: 9120d85a12ad8d059e1a74afb24b5293d2b04ea1
5
5
  SHA512:
6
- metadata.gz: 598e0782b467101c053444c70b1d80313237d92a8a51372b1149e0c8d8fe82dfe214ab5e7484400cca31362ac5951aae43aea90acbf83418eb4eac115aba9559
7
- data.tar.gz: bbd5a90922d82352bc070b205b12a0f587a2a829433e776d3105a958f4767840ad2c7e393c92af36cbc1685354c9f28f706bdf3b3add0af1d514129768b76fb1
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
- main_thread
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 @queue.pop
40
+ @io.write message
53
41
  end
54
42
  end
55
43
  end
56
44
  end
57
45
 
58
- def close_main_thread
59
- @main_thread && (
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
- begin
85
- if enabled?
86
- connect unless connected?
87
- yield
88
- end
89
- rescue Exception => e
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,7 +1,7 @@
1
1
  module Vx
2
2
  module Lib
3
3
  module Logger
4
- VERSION = "0.3.4"
4
+ VERSION = "0.3.5"
5
5
  end
6
6
  end
7
7
  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", re
38
+ assert_equal re, "Hello\nWorld\n"
77
39
  end
78
40
 
79
41
 
@@ -19,7 +19,6 @@ describe Vx::Lib::Logger::LogstashLogger do
19
19
  @log.public_send(m, "send #{m}")
20
20
  @log.close
21
21
  end
22
- @log.logstash_device.close_main_thread
23
22
  assert_match(/send #{m}/, re)
24
23
  end
25
24
  end
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
- ths = (0..10).to_a.map do |n|
13
- Thread.new do
14
- loop do
15
- client = server.accept
16
- lock.synchronize do
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 10
20
+ sleep 0.2
28
21
  out
29
22
  ensure
30
- ths.map(&:kill)
23
+ th.kill
31
24
  server.close
32
25
  end
33
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vx-lib-logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky