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 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